diff --git a/horse/game-id.kk b/horse/game-id.kk new file mode 100644 index 0000000..ad8f3c4 --- /dev/null +++ b/horse/game-id.kk @@ -0,0 +1,49 @@ +module horse/game-id + +// Game ID for characters, cards, skills, races, &c. +// Values for different categories may overlap. +alias game-id = int + +// Specific game ID types. +// I've already made mistakes with ID categories and I haven't even committed this file yet. + +// Game ID for characters. +// Generally numbers in the range 1000-9999. +pub struct character-id + game-id: game-id + +// Game ID for trainees, i.e. costume instances of characters. +// Generally a character ID with two digits appended. +pub struct trainee-id + game-id: game-id + +// Game ID for skills. +pub struct skill-id + game-id: game-id + +// Game ID for skill groups. +pub struct skill-group-id + game-id: game-id + +// Game ID for skill icons. +pub struct skill-icon-id + game-id: game-id + +// order2 comparison between any game ID types. +pub inline fun order2(x: a, y: a, ?a/game-id: (a) -> game-id): order2 + match x.game-id.cmp(y.game-id) + Lt -> Lt2(x, y) + Eq -> Eq2(x) + Gt -> Gt2(x, y) + +// Comparison between any game ID types. +pub inline fun cmp(x: a, y: a, ?a/game-id: (a) -> game-id): order + x.game-id.cmp(y.game-id) + +// Equality between any game ID types. +pub inline fun (==)(x: a, y: a, ?a/game-id: (a) -> game-id): bool + x.game-id == y.game-id + +// Check whether a game ID is valid, i.e. nonzero. +pub inline fun is-valid(x: a, ?a/game-id: (a) -> game-id): bool + x.game-id != 0 diff --git a/horse/global/skill-group.kk b/horse/global/skill-group.kk deleted file mode 100644 index fd92ced..0000000 --- a/horse/global/skill-group.kk +++ /dev/null @@ -1,1069 +0,0 @@ -module horse/global/skill-group - -// Automatically generated with horsegen; DO NOT EDIT - -// Skill groups. -// A skill group may contain white, circle, double-circle, gold, and purple skills -// for the same effect. -// Sparks that grant skills refer to a skill group. -pub type skill-group - Warning-Shot - Xceleration - Red-Ace - Focused-Mind - Corazon-Ardiente - Empresss-Pride - First-Place-Kiss - Feel-the-Burn - Introduction-to-Physiology - V-Is-for-Victory - Class-Rep-Speed-Bakushin - Clear-Heart - Super-Duper-Stoked - Luck-Be-with-Me - I-Can-Win-Sometimes-Right - Call-Me-King - Shooting-Star - The-View-from-the-Lead-Is-Mine - Sky-High-Teio-Step - Red-Shift-LP1211-M - Lights-of-Vaudeville - Triumphant-Pulse - Anchors-Aweigh - Cut-and-Drive - Resplendent-Red-Ace - Shooting-for-Victory - Where-Theres-a-Will-Theres-a-Way - You-and-Me-One-on-One - The-Duty-of-Dignity-Calls - Victoria-por-plancha - This-Dance-Is-for-Vittoria - Shadow-Break - Behold-Thine-Emperors-Divine-Might - Blazing-Pride - OMG-The-Final-Sprint - Angling-and-Scheming - White-Lightning-Comin-Through - Fairy-Tale - Win-QED - Flashy-Landing - Chasing-After-You - G00-First-FInfinity - Lets-Pump-Some-Iron - YUMMY-SPEED - Blue-Rose-Closer - U-ma2 - Our-Ticket-to-Win - Schwarzes-Schwert - LookatCurren - A-Princess-Must-Seize-Victory - KEEP-IT-REAL - Genius-x-Bakushin-Victory - Pure-Heart - SPARKLY-STARDOM - Pop-and-Polish - Nemesis - Super-Duper-Climax - I-See-Victory-in-My-Future - I-Never-Goof-Up - Moving-Past-and-Beyond - Just-a-Little-Farther - Prideful-King - Dazzl-n-Diver - Certain-Victory - A-Kiss-for-Courage - Festive-Miracle - Superior-Heal - Legacy-of-the-Strong - Condors-Fury - Arrows-Whistle-Shadows-Disperse - Eternal-Moments - Presents-from-X - Flowery-Maneuver - Every-Rose-Has-Its-Fangs - Dancing-in-the-Leaves - Give-Mummy-a-Hug - Bountiful-Harvest - Right-Handed - Left-Handed - Tokyo-Racecourse - Nakayama-Racecourse - Hanshin-Racecourse - Kyoto-Racecourse - Chukyo-Racecourse - Sapporo-Racecourse - Hakodate-Racecourse - Fukushima-Racecourse - Niigata-Racecourse - Kokura-Racecourse - Standard-Distance - Non-Standard-Distance - Firm-Conditions - Wet-Conditions - Spring-Runner - Summer-Runner - Fall-Runner - Winter-Runner - Sunny-Days - Cloudy-Days - Rainy-Days - Snowy-Days - Inner-Post-Proficiency - Outer-Post-Proficiency - Maverick - Competitive-Spirit - Target-in-Sight - Long-Shot - Corner-Adept - Corner-Acceleration - Corner-Recovery - Straightaway-Adept - Straightaway-Acceleration - Straightaway-Recovery - Focus - Lay-Low - Prudent-Positioning - Ramp-Up - Pace-Strategy - Calm-in-a-Crowd - Nimble-Navigator - Go-with-the-Flow - Homestretch-Haste - Early-Lead - Fast-Paced - Final-Push - Stamina-to-Spare - Preferred-Position - Prepared-to-Pass - Position-Pilfer - Slick-Surge - Outer-Swell - Standing-By - Masterful-Gambit - Straightaway-Spurt - Sprinting-Gear - Wait-and-See - Gap-Closer - Productive-Plan - Watchful-Eye - Updrafters - Rosy-Outlook - Up-Tempo - Steadfast - Deep-Breaths - Inside-Scoop - Extra-Tank - Trick-Front - Trick-Rear - Frenzied-Front-Runners - Frenzied-Pace-Chasers - Frenzied-Late-Surgers - Frenzied-End-Closers - Subdued-Front-Runners - Flustered-Front-Runners - Hesitant-Front-Runners - Subdued-Pace-Chasers - Flustered-Pace-Chasers - Hesitant-Pace-Chasers - Subdued-Late-Surgers - Flustered-Late-Surgers - Hesitant-Late-Surgers - Subdued-End-Closers - Flustered-End-Closers - Hesitant-End-Closers - Oi-Racecourse - Sprint-Straightaways - Sprint-Corners - Huge-Lead - Countermeasure - Meticulous-Measures - Intimidate - Stop-Right-There - Mile-Straightaways - Mile-Corners - Shifting-Gears - Acceleration - Unyielding-Spirit - Speed-Eater - Opening-Gambit - Medium-Straightaways - Medium-Corners - Hawkeye - Thunderbolt-Step - Soft-Step - Tether - Murmur - Long-Straightaways - Long-Corners - Keeping-the-Lead - Passing-Pro - Pressure - Stamina-Eater - Smoke-Screen - Front-Runner-Straightaways - Front-Runner-Corners - Dodging-Danger - Leaders-Pride - Moxie - Second-Wind - Restart - Pace-Chaser-Straightaways - Pace-Chaser-Corners - Shrewd-Step - Straight-Descent - Hydrate - Tactical-Tweak - Disorient - Late-Surger-Straightaways - Late-Surger-Corners - Fighter - One-Million-CC - A-Small-Breather - Studious - Sharp-Gaze - End-Closer-Straightaways - End-Closer-Corners - I-Can-See-Right-Through-You - After-School-Stroll - Levelheaded - Strategist - Intense-Gaze - Front-Runner-Savvy - Pace-Chaser-Savvy - Late-Surger-Savvy - End-Closer-Savvy - Lucky-Seven - Triple-Sevens - Highlander - Uma-Stan - Groundwork - Tail-Held-High - Shake-It-Out - Sympathy - Lone-Wolf - Slipstream - Playtimes-Over - Top-Pick - Forward-March - Be-Still - All-I-ve-Got - Head-On - Familiar-Ground - Early-Start - Risky-Business - Ignited-Spirit-SPD - Ignited-Spirit-STA - Ignited-Spirit-PWR - Ignited-Spirit-GUTS - Ignited-Spirit-WIT - Unquenched-Thirst - Unchanging - Towards-the-Scenery-I-Seek - Creeping-Anxiety - Blatant-Fear - Dream-Run - Show-Me-What-Lies-Beyond - Hoiya-Have-a-Good-Run - As-a-Friend-and-Rival - Cheers-of-a-Fellow-Dreamer - -// Map a skill group to its ID. -pub fip fun skill-group/group-id(^sg: skill-group): int - match sg - Warning-Shot -> 1007 - Xceleration -> 1008 - Red-Ace -> 1009 - Focused-Mind -> 1011 - Corazon-Ardiente -> 1014 - Empresss-Pride -> 1018 - First-Place-Kiss -> 1024 - Feel-the-Burn -> 1027 - Introduction-to-Physiology -> 1032 - V-Is-for-Victory -> 1035 - Class-Rep-Speed-Bakushin -> 1041 - Clear-Heart -> 1045 - Super-Duper-Stoked -> 1052 - Luck-Be-with-Me -> 1056 - I-Can-Win-Sometimes-Right -> 1060 - Call-Me-King -> 1061 - Shooting-Star -> 10001 - The-View-from-the-Lead-Is-Mine -> 10002 - Sky-High-Teio-Step -> 10003 - Red-Shift-LP1211-M -> 10004 - Lights-of-Vaudeville -> 10005 - Triumphant-Pulse -> 10006 - Anchors-Aweigh -> 10007 - Cut-and-Drive -> 10008 - Resplendent-Red-Ace -> 10009 - Shooting-for-Victory -> 10010 - Where-Theres-a-Will-Theres-a-Way -> 10011 - You-and-Me-One-on-One -> 10012 - The-Duty-of-Dignity-Calls -> 10013 - Victoria-por-plancha -> 10014 - This-Dance-Is-for-Vittoria -> 10015 - Shadow-Break -> 10016 - Behold-Thine-Emperors-Divine-Might -> 10017 - Blazing-Pride -> 10018 - OMG-The-Final-Sprint -> 10019 - Angling-and-Scheming -> 10020 - White-Lightning-Comin-Through -> 10021 - Fairy-Tale -> 10022 - Win-QED -> 10023 - Flashy-Landing -> 10024 - Chasing-After-You -> 10025 - G00-First-FInfinity -> 10026 - Lets-Pump-Some-Iron -> 10027 - YUMMY-SPEED -> 10028 - Blue-Rose-Closer -> 10030 - U-ma2 -> 10032 - Our-Ticket-to-Win -> 10035 - Schwarzes-Schwert -> 10037 - LookatCurren -> 10038 - A-Princess-Must-Seize-Victory -> 10039 - KEEP-IT-REAL -> 10040 - Genius-x-Bakushin-Victory -> 10041 - Pure-Heart -> 10045 - SPARKLY-STARDOM -> 10046 - Pop-and-Polish -> 10048 - Nemesis -> 10050 - Super-Duper-Climax -> 10052 - I-See-Victory-in-My-Future -> 10056 - I-Never-Goof-Up -> 10058 - Moving-Past-and-Beyond -> 10059 - Just-a-Little-Farther -> 10060 - Prideful-King -> 10061 - Dazzl-n-Diver -> 11001 - Certain-Victory -> 11003 - A-Kiss-for-Courage -> 11004 - Festive-Miracle -> 11006 - Superior-Heal -> 11011 - Legacy-of-the-Strong -> 11013 - Condors-Fury -> 11014 - Arrows-Whistle-Shadows-Disperse -> 11017 - Eternal-Moments -> 11018 - Presents-from-X -> 11023 - Flowery-Maneuver -> 11024 - Every-Rose-Has-Its-Fangs -> 11030 - Dancing-in-the-Leaves -> 11040 - Give-Mummy-a-Hug -> 11045 - Bountiful-Harvest -> 11056 - Right-Handed -> 20001 - Left-Handed -> 20002 - Tokyo-Racecourse -> 20003 - Nakayama-Racecourse -> 20004 - Hanshin-Racecourse -> 20005 - Kyoto-Racecourse -> 20006 - Chukyo-Racecourse -> 20007 - Sapporo-Racecourse -> 20008 - Hakodate-Racecourse -> 20009 - Fukushima-Racecourse -> 20010 - Niigata-Racecourse -> 20011 - Kokura-Racecourse -> 20012 - Standard-Distance -> 20013 - Non-Standard-Distance -> 20014 - Firm-Conditions -> 20015 - Wet-Conditions -> 20016 - Spring-Runner -> 20017 - Summer-Runner -> 20018 - Fall-Runner -> 20019 - Winter-Runner -> 20020 - Sunny-Days -> 20021 - Cloudy-Days -> 20022 - Rainy-Days -> 20023 - Snowy-Days -> 20024 - Inner-Post-Proficiency -> 20025 - Outer-Post-Proficiency -> 20026 - Maverick -> 20027 - Competitive-Spirit -> 20028 - Target-in-Sight -> 20029 - Long-Shot -> 20030 - Corner-Adept -> 20033 - Corner-Acceleration -> 20034 - Corner-Recovery -> 20035 - Straightaway-Adept -> 20036 - Straightaway-Acceleration -> 20037 - Straightaway-Recovery -> 20038 - Focus -> 20043 - Lay-Low -> 20044 - Prudent-Positioning -> 20045 - Ramp-Up -> 20046 - Pace-Strategy -> 20047 - Calm-in-a-Crowd -> 20048 - Nimble-Navigator -> 20049 - Go-with-the-Flow -> 20050 - Homestretch-Haste -> 20051 - Early-Lead -> 20053 - Fast-Paced -> 20054 - Final-Push -> 20055 - Stamina-to-Spare -> 20056 - Preferred-Position -> 20057 - Prepared-to-Pass -> 20058 - Position-Pilfer -> 20059 - Slick-Surge -> 20060 - Outer-Swell -> 20061 - Standing-By -> 20062 - Masterful-Gambit -> 20063 - Straightaway-Spurt -> 20064 - Sprinting-Gear -> 20065 - Wait-and-See -> 20066 - Gap-Closer -> 20067 - Productive-Plan -> 20068 - Watchful-Eye -> 20069 - Updrafters -> 20070 - Rosy-Outlook -> 20071 - Up-Tempo -> 20072 - Steadfast -> 20073 - Deep-Breaths -> 20074 - Inside-Scoop -> 20075 - Extra-Tank -> 20076 - Trick-Front -> 20077 - Trick-Rear -> 20078 - Frenzied-Front-Runners -> 20079 - Frenzied-Pace-Chasers -> 20080 - Frenzied-Late-Surgers -> 20081 - Frenzied-End-Closers -> 20082 - Subdued-Front-Runners -> 20083 - Flustered-Front-Runners -> 20084 - Hesitant-Front-Runners -> 20085 - Subdued-Pace-Chasers -> 20086 - Flustered-Pace-Chasers -> 20087 - Hesitant-Pace-Chasers -> 20088 - Subdued-Late-Surgers -> 20089 - Flustered-Late-Surgers -> 20090 - Hesitant-Late-Surgers -> 20091 - Subdued-End-Closers -> 20092 - Flustered-End-Closers -> 20093 - Hesitant-End-Closers -> 20094 - Oi-Racecourse -> 20095 - Sprint-Straightaways -> 20096 - Sprint-Corners -> 20097 - Huge-Lead -> 20098 - Countermeasure -> 20099 - Meticulous-Measures -> 20100 - Intimidate -> 20101 - Stop-Right-There -> 20102 - Mile-Straightaways -> 20103 - Mile-Corners -> 20104 - Shifting-Gears -> 20105 - Acceleration -> 20106 - Unyielding-Spirit -> 20107 - Speed-Eater -> 20108 - Opening-Gambit -> 20109 - Medium-Straightaways -> 20110 - Medium-Corners -> 20111 - Hawkeye -> 20112 - Thunderbolt-Step -> 20113 - Soft-Step -> 20114 - Tether -> 20115 - Murmur -> 20116 - Long-Straightaways -> 20117 - Long-Corners -> 20118 - Keeping-the-Lead -> 20119 - Passing-Pro -> 20120 - Pressure -> 20121 - Stamina-Eater -> 20122 - Smoke-Screen -> 20123 - Front-Runner-Straightaways -> 20124 - Front-Runner-Corners -> 20125 - Dodging-Danger -> 20126 - Leaders-Pride -> 20127 - Moxie -> 20128 - Second-Wind -> 20129 - Restart -> 20130 - Pace-Chaser-Straightaways -> 20131 - Pace-Chaser-Corners -> 20132 - Shrewd-Step -> 20133 - Straight-Descent -> 20134 - Hydrate -> 20135 - Tactical-Tweak -> 20136 - Disorient -> 20137 - Late-Surger-Straightaways -> 20138 - Late-Surger-Corners -> 20139 - Fighter -> 20140 - One-Million-CC -> 20141 - A-Small-Breather -> 20142 - Studious -> 20143 - Sharp-Gaze -> 20144 - End-Closer-Straightaways -> 20145 - End-Closer-Corners -> 20146 - I-Can-See-Right-Through-You -> 20147 - After-School-Stroll -> 20148 - Levelheaded -> 20149 - Strategist -> 20150 - Intense-Gaze -> 20151 - Front-Runner-Savvy -> 20152 - Pace-Chaser-Savvy -> 20153 - Late-Surger-Savvy -> 20154 - End-Closer-Savvy -> 20155 - Lucky-Seven -> 20156 - Triple-Sevens -> 20157 - Highlander -> 20158 - Uma-Stan -> 20159 - Groundwork -> 20160 - Tail-Held-High -> 20161 - Shake-It-Out -> 20162 - Sympathy -> 20163 - Lone-Wolf -> 20164 - Slipstream -> 20165 - Playtimes-Over -> 20166 - Top-Pick -> 20167 - Forward-March -> 20168 - Be-Still -> 20169 - All-I-ve-Got -> 20170 - Head-On -> 20190 - Familiar-Ground -> 20200 - Early-Start -> 20202 - Risky-Business -> 20203 - Ignited-Spirit-SPD -> 21001 - Ignited-Spirit-STA -> 21002 - Ignited-Spirit-PWR -> 21003 - Ignited-Spirit-GUTS -> 21004 - Ignited-Spirit-WIT -> 21005 - Unquenched-Thirst -> 30001 - Unchanging -> 30002 - Towards-the-Scenery-I-Seek -> 30003 - Creeping-Anxiety -> 30004 - Blatant-Fear -> 30005 - Dream-Run -> 30006 - Show-Me-What-Lies-Beyond -> 30007 - Hoiya-Have-a-Good-Run -> 30008 - As-a-Friend-and-Rival -> 30009 - Cheers-of-a-Fellow-Dreamer -> 30010 - -// Get the skill group for an ID. -pub fip(1) fun skill-group/from-id(^id: int): maybe - match id - 1007 -> Just(Warning-Shot) - 1008 -> Just(Xceleration) - 1009 -> Just(Red-Ace) - 1011 -> Just(Focused-Mind) - 1014 -> Just(Corazon-Ardiente) - 1018 -> Just(Empresss-Pride) - 1024 -> Just(First-Place-Kiss) - 1027 -> Just(Feel-the-Burn) - 1032 -> Just(Introduction-to-Physiology) - 1035 -> Just(V-Is-for-Victory) - 1041 -> Just(Class-Rep-Speed-Bakushin) - 1045 -> Just(Clear-Heart) - 1052 -> Just(Super-Duper-Stoked) - 1056 -> Just(Luck-Be-with-Me) - 1060 -> Just(I-Can-Win-Sometimes-Right) - 1061 -> Just(Call-Me-King) - 10001 -> Just(Shooting-Star) - 10002 -> Just(The-View-from-the-Lead-Is-Mine) - 10003 -> Just(Sky-High-Teio-Step) - 10004 -> Just(Red-Shift-LP1211-M) - 10005 -> Just(Lights-of-Vaudeville) - 10006 -> Just(Triumphant-Pulse) - 10007 -> Just(Anchors-Aweigh) - 10008 -> Just(Cut-and-Drive) - 10009 -> Just(Resplendent-Red-Ace) - 10010 -> Just(Shooting-for-Victory) - 10011 -> Just(Where-Theres-a-Will-Theres-a-Way) - 10012 -> Just(You-and-Me-One-on-One) - 10013 -> Just(The-Duty-of-Dignity-Calls) - 10014 -> Just(Victoria-por-plancha) - 10015 -> Just(This-Dance-Is-for-Vittoria) - 10016 -> Just(Shadow-Break) - 10017 -> Just(Behold-Thine-Emperors-Divine-Might) - 10018 -> Just(Blazing-Pride) - 10019 -> Just(OMG-The-Final-Sprint) - 10020 -> Just(Angling-and-Scheming) - 10021 -> Just(White-Lightning-Comin-Through) - 10022 -> Just(Fairy-Tale) - 10023 -> Just(Win-QED) - 10024 -> Just(Flashy-Landing) - 10025 -> Just(Chasing-After-You) - 10026 -> Just(G00-First-FInfinity) - 10027 -> Just(Lets-Pump-Some-Iron) - 10028 -> Just(YUMMY-SPEED) - 10030 -> Just(Blue-Rose-Closer) - 10032 -> Just(U-ma2) - 10035 -> Just(Our-Ticket-to-Win) - 10037 -> Just(Schwarzes-Schwert) - 10038 -> Just(LookatCurren) - 10039 -> Just(A-Princess-Must-Seize-Victory) - 10040 -> Just(KEEP-IT-REAL) - 10041 -> Just(Genius-x-Bakushin-Victory) - 10045 -> Just(Pure-Heart) - 10046 -> Just(SPARKLY-STARDOM) - 10048 -> Just(Pop-and-Polish) - 10050 -> Just(Nemesis) - 10052 -> Just(Super-Duper-Climax) - 10056 -> Just(I-See-Victory-in-My-Future) - 10058 -> Just(I-Never-Goof-Up) - 10059 -> Just(Moving-Past-and-Beyond) - 10060 -> Just(Just-a-Little-Farther) - 10061 -> Just(Prideful-King) - 11001 -> Just(Dazzl-n-Diver) - 11003 -> Just(Certain-Victory) - 11004 -> Just(A-Kiss-for-Courage) - 11006 -> Just(Festive-Miracle) - 11011 -> Just(Superior-Heal) - 11013 -> Just(Legacy-of-the-Strong) - 11014 -> Just(Condors-Fury) - 11017 -> Just(Arrows-Whistle-Shadows-Disperse) - 11018 -> Just(Eternal-Moments) - 11023 -> Just(Presents-from-X) - 11024 -> Just(Flowery-Maneuver) - 11030 -> Just(Every-Rose-Has-Its-Fangs) - 11040 -> Just(Dancing-in-the-Leaves) - 11045 -> Just(Give-Mummy-a-Hug) - 11056 -> Just(Bountiful-Harvest) - 20001 -> Just(Right-Handed) - 20002 -> Just(Left-Handed) - 20003 -> Just(Tokyo-Racecourse) - 20004 -> Just(Nakayama-Racecourse) - 20005 -> Just(Hanshin-Racecourse) - 20006 -> Just(Kyoto-Racecourse) - 20007 -> Just(Chukyo-Racecourse) - 20008 -> Just(Sapporo-Racecourse) - 20009 -> Just(Hakodate-Racecourse) - 20010 -> Just(Fukushima-Racecourse) - 20011 -> Just(Niigata-Racecourse) - 20012 -> Just(Kokura-Racecourse) - 20013 -> Just(Standard-Distance) - 20014 -> Just(Non-Standard-Distance) - 20015 -> Just(Firm-Conditions) - 20016 -> Just(Wet-Conditions) - 20017 -> Just(Spring-Runner) - 20018 -> Just(Summer-Runner) - 20019 -> Just(Fall-Runner) - 20020 -> Just(Winter-Runner) - 20021 -> Just(Sunny-Days) - 20022 -> Just(Cloudy-Days) - 20023 -> Just(Rainy-Days) - 20024 -> Just(Snowy-Days) - 20025 -> Just(Inner-Post-Proficiency) - 20026 -> Just(Outer-Post-Proficiency) - 20027 -> Just(Maverick) - 20028 -> Just(Competitive-Spirit) - 20029 -> Just(Target-in-Sight) - 20030 -> Just(Long-Shot) - 20033 -> Just(Corner-Adept) - 20034 -> Just(Corner-Acceleration) - 20035 -> Just(Corner-Recovery) - 20036 -> Just(Straightaway-Adept) - 20037 -> Just(Straightaway-Acceleration) - 20038 -> Just(Straightaway-Recovery) - 20043 -> Just(Focus) - 20044 -> Just(Lay-Low) - 20045 -> Just(Prudent-Positioning) - 20046 -> Just(Ramp-Up) - 20047 -> Just(Pace-Strategy) - 20048 -> Just(Calm-in-a-Crowd) - 20049 -> Just(Nimble-Navigator) - 20050 -> Just(Go-with-the-Flow) - 20051 -> Just(Homestretch-Haste) - 20053 -> Just(Early-Lead) - 20054 -> Just(Fast-Paced) - 20055 -> Just(Final-Push) - 20056 -> Just(Stamina-to-Spare) - 20057 -> Just(Preferred-Position) - 20058 -> Just(Prepared-to-Pass) - 20059 -> Just(Position-Pilfer) - 20060 -> Just(Slick-Surge) - 20061 -> Just(Outer-Swell) - 20062 -> Just(Standing-By) - 20063 -> Just(Masterful-Gambit) - 20064 -> Just(Straightaway-Spurt) - 20065 -> Just(Sprinting-Gear) - 20066 -> Just(Wait-and-See) - 20067 -> Just(Gap-Closer) - 20068 -> Just(Productive-Plan) - 20069 -> Just(Watchful-Eye) - 20070 -> Just(Updrafters) - 20071 -> Just(Rosy-Outlook) - 20072 -> Just(Up-Tempo) - 20073 -> Just(Steadfast) - 20074 -> Just(Deep-Breaths) - 20075 -> Just(Inside-Scoop) - 20076 -> Just(Extra-Tank) - 20077 -> Just(Trick-Front) - 20078 -> Just(Trick-Rear) - 20079 -> Just(Frenzied-Front-Runners) - 20080 -> Just(Frenzied-Pace-Chasers) - 20081 -> Just(Frenzied-Late-Surgers) - 20082 -> Just(Frenzied-End-Closers) - 20083 -> Just(Subdued-Front-Runners) - 20084 -> Just(Flustered-Front-Runners) - 20085 -> Just(Hesitant-Front-Runners) - 20086 -> Just(Subdued-Pace-Chasers) - 20087 -> Just(Flustered-Pace-Chasers) - 20088 -> Just(Hesitant-Pace-Chasers) - 20089 -> Just(Subdued-Late-Surgers) - 20090 -> Just(Flustered-Late-Surgers) - 20091 -> Just(Hesitant-Late-Surgers) - 20092 -> Just(Subdued-End-Closers) - 20093 -> Just(Flustered-End-Closers) - 20094 -> Just(Hesitant-End-Closers) - 20095 -> Just(Oi-Racecourse) - 20096 -> Just(Sprint-Straightaways) - 20097 -> Just(Sprint-Corners) - 20098 -> Just(Huge-Lead) - 20099 -> Just(Countermeasure) - 20100 -> Just(Meticulous-Measures) - 20101 -> Just(Intimidate) - 20102 -> Just(Stop-Right-There) - 20103 -> Just(Mile-Straightaways) - 20104 -> Just(Mile-Corners) - 20105 -> Just(Shifting-Gears) - 20106 -> Just(Acceleration) - 20107 -> Just(Unyielding-Spirit) - 20108 -> Just(Speed-Eater) - 20109 -> Just(Opening-Gambit) - 20110 -> Just(Medium-Straightaways) - 20111 -> Just(Medium-Corners) - 20112 -> Just(Hawkeye) - 20113 -> Just(Thunderbolt-Step) - 20114 -> Just(Soft-Step) - 20115 -> Just(Tether) - 20116 -> Just(Murmur) - 20117 -> Just(Long-Straightaways) - 20118 -> Just(Long-Corners) - 20119 -> Just(Keeping-the-Lead) - 20120 -> Just(Passing-Pro) - 20121 -> Just(Pressure) - 20122 -> Just(Stamina-Eater) - 20123 -> Just(Smoke-Screen) - 20124 -> Just(Front-Runner-Straightaways) - 20125 -> Just(Front-Runner-Corners) - 20126 -> Just(Dodging-Danger) - 20127 -> Just(Leaders-Pride) - 20128 -> Just(Moxie) - 20129 -> Just(Second-Wind) - 20130 -> Just(Restart) - 20131 -> Just(Pace-Chaser-Straightaways) - 20132 -> Just(Pace-Chaser-Corners) - 20133 -> Just(Shrewd-Step) - 20134 -> Just(Straight-Descent) - 20135 -> Just(Hydrate) - 20136 -> Just(Tactical-Tweak) - 20137 -> Just(Disorient) - 20138 -> Just(Late-Surger-Straightaways) - 20139 -> Just(Late-Surger-Corners) - 20140 -> Just(Fighter) - 20141 -> Just(One-Million-CC) - 20142 -> Just(A-Small-Breather) - 20143 -> Just(Studious) - 20144 -> Just(Sharp-Gaze) - 20145 -> Just(End-Closer-Straightaways) - 20146 -> Just(End-Closer-Corners) - 20147 -> Just(I-Can-See-Right-Through-You) - 20148 -> Just(After-School-Stroll) - 20149 -> Just(Levelheaded) - 20150 -> Just(Strategist) - 20151 -> Just(Intense-Gaze) - 20152 -> Just(Front-Runner-Savvy) - 20153 -> Just(Pace-Chaser-Savvy) - 20154 -> Just(Late-Surger-Savvy) - 20155 -> Just(End-Closer-Savvy) - 20156 -> Just(Lucky-Seven) - 20157 -> Just(Triple-Sevens) - 20158 -> Just(Highlander) - 20159 -> Just(Uma-Stan) - 20160 -> Just(Groundwork) - 20161 -> Just(Tail-Held-High) - 20162 -> Just(Shake-It-Out) - 20163 -> Just(Sympathy) - 20164 -> Just(Lone-Wolf) - 20165 -> Just(Slipstream) - 20166 -> Just(Playtimes-Over) - 20167 -> Just(Top-Pick) - 20168 -> Just(Forward-March) - 20169 -> Just(Be-Still) - 20170 -> Just(All-I-ve-Got) - 20190 -> Just(Head-On) - 20200 -> Just(Familiar-Ground) - 20202 -> Just(Early-Start) - 20203 -> Just(Risky-Business) - 21001 -> Just(Ignited-Spirit-SPD) - 21002 -> Just(Ignited-Spirit-STA) - 21003 -> Just(Ignited-Spirit-PWR) - 21004 -> Just(Ignited-Spirit-GUTS) - 21005 -> Just(Ignited-Spirit-WIT) - 30001 -> Just(Unquenched-Thirst) - 30002 -> Just(Unchanging) - 30003 -> Just(Towards-the-Scenery-I-Seek) - 30004 -> Just(Creeping-Anxiety) - 30005 -> Just(Blatant-Fear) - 30006 -> Just(Dream-Run) - 30007 -> Just(Show-Me-What-Lies-Beyond) - 30008 -> Just(Hoiya-Have-a-Good-Run) - 30009 -> Just(As-a-Friend-and-Rival) - 30010 -> Just(Cheers-of-a-Fellow-Dreamer) - _ -> Nothing - -// Get the name for a skill group. -// Skill group names are the name of the base skill in the group. -pub fun skill-group/show(sg: skill-group): string - match sg - Warning-Shot -> "Warning Shot!" - Xceleration -> "Xceleration" - Red-Ace -> "Red Ace" - Focused-Mind -> "Focused Mind" - Corazon-Ardiente -> "Corazón ☆ Ardiente" - Empresss-Pride -> "Empress's Pride" - First-Place-Kiss -> "1st Place Kiss☆" - Feel-the-Burn -> "Feel the Burn!" - Introduction-to-Physiology -> "Introduction to Physiology" - V-Is-for-Victory -> "V Is for Victory!" - Class-Rep-Speed-Bakushin -> "Class Rep + Speed = Bakushin" - Clear-Heart -> "Clear Heart" - Super-Duper-Stoked -> "Super-Duper Stoked" - Luck-Be-with-Me -> "Luck Be with Me!" - I-Can-Win-Sometimes-Right -> "I Can Win Sometimes, Right?" - Call-Me-King -> "Call Me King" - Shooting-Star -> "Shooting Star" - The-View-from-the-Lead-Is-Mine -> "The View from the Lead Is Mine!" - Sky-High-Teio-Step -> "Sky-High Teio Step" - Red-Shift-LP1211-M -> "Red Shift/LP1211-M" - Lights-of-Vaudeville -> "Lights of Vaudeville" - Triumphant-Pulse -> "Triumphant Pulse" - Anchors-Aweigh -> "Anchors Aweigh!" - Cut-and-Drive -> "Cut and Drive!" - Resplendent-Red-Ace -> "Resplendent Red Ace" - Shooting-for-Victory -> "Shooting for Victory!" - Where-Theres-a-Will-Theres-a-Way -> "Where There's a Will, There's a Way" - You-and-Me-One-on-One -> "You and Me! One-on-One!" - The-Duty-of-Dignity-Calls -> "The Duty of Dignity Calls" - Victoria-por-plancha -> "Victoria por plancha ☆" - This-Dance-Is-for-Vittoria -> "This Dance Is for Vittoria!" - Shadow-Break -> "Shadow Break" - Behold-Thine-Emperors-Divine-Might -> "Behold Thine Emperor's Divine Might" - Blazing-Pride -> "Blazing Pride" - OMG-The-Final-Sprint -> "OMG! (゚∀゚) The Final Sprint! ☆" - Angling-and-Scheming -> "Angling and Scheming" - White-Lightning-Comin-Through -> "White Lightning Comin' Through!" - Fairy-Tale -> "Fairy Tale" - Win-QED -> "∴win Q.E.D." - Flashy-Landing -> "Flashy☆Landing" - Chasing-After-You -> "Chasing After You" - G00-First-FInfinity -> "G00 1st. F∞;" - Lets-Pump-Some-Iron -> "Let's Pump Some Iron!" - YUMMY-SPEED -> "YUMMY☆SPEED!" - Blue-Rose-Closer -> "Blue Rose Closer" - U-ma2 -> "U=ma2" - Our-Ticket-to-Win -> "Our Ticket to Win!" - Schwarzes-Schwert -> "Schwarzes Schwert" - LookatCurren -> "#LookatCurren" - A-Princess-Must-Seize-Victory -> "A Princess Must Seize Victory!" - KEEP-IT-REAL -> "KEEP IT REAL." - Genius-x-Bakushin-Victory -> "Genius x Bakushin = Victory" - Pure-Heart -> "Pure Heart" - SPARKLY-STARDOM -> "SPARKLY☆STARDOM" - Pop-and-Polish -> "Pop & Polish" - Nemesis -> "Nemesis" - Super-Duper-Climax -> "Super-Duper Climax" - I-See-Victory-in-My-Future -> "I See Victory in My Future!" - I-Never-Goof-Up -> "I Never Goof Up!" - Moving-Past-and-Beyond -> "Moving Past, and Beyond" - Just-a-Little-Farther -> "Just a Little Farther!" - Prideful-King -> "Prideful King" - Dazzl-n-Diver -> "Dazzl'n ♪ Diver" - Certain-Victory -> "Certain Victory" - A-Kiss-for-Courage -> "A Kiss for Courage" - Festive-Miracle -> "Festive Miracle" - Superior-Heal -> "Superior Heal" - Legacy-of-the-Strong -> "Legacy of the Strong" - Condors-Fury -> "Condor's Fury" - Arrows-Whistle-Shadows-Disperse -> "Arrows Whistle, Shadows Disperse" - Eternal-Moments -> "Eternal Moments" - Presents-from-X -> "Presents from X" - Flowery-Maneuver -> "Flowery☆Maneuver" - Every-Rose-Has-Its-Fangs -> "Every Rose Has Its Fangs" - Dancing-in-the-Leaves -> "Dancing in the Leaves" - Give-Mummy-a-Hug -> "Give Mummy a Hug ♡" - Bountiful-Harvest -> "Bountiful Harvest" - Right-Handed -> "Right-Handed ○" - Left-Handed -> "Left-Handed ○" - Tokyo-Racecourse -> "Tokyo Racecourse ○" - Nakayama-Racecourse -> "Nakayama Racecourse ○" - Hanshin-Racecourse -> "Hanshin Racecourse ○" - Kyoto-Racecourse -> "Kyoto Racecourse ○" - Chukyo-Racecourse -> "Chukyo Racecourse ○" - Sapporo-Racecourse -> "Sapporo Racecourse ○" - Hakodate-Racecourse -> "Hakodate Racecourse ○" - Fukushima-Racecourse -> "Fukushima Racecourse ○" - Niigata-Racecourse -> "Niigata Racecourse ○" - Kokura-Racecourse -> "Kokura Racecourse ○" - Standard-Distance -> "Standard Distance ○" - Non-Standard-Distance -> "Non-Standard Distance ○" - Firm-Conditions -> "Firm Conditions ○" - Wet-Conditions -> "Wet Conditions ○" - Spring-Runner -> "Spring Runner ○" - Summer-Runner -> "Summer Runner ○" - Fall-Runner -> "Fall Runner ○" - Winter-Runner -> "Winter Runner ○" - Sunny-Days -> "Sunny Days ○" - Cloudy-Days -> "Cloudy Days ○" - Rainy-Days -> "Rainy Days ○" - Snowy-Days -> "Snowy Days ○" - Inner-Post-Proficiency -> "Inner Post Proficiency ○" - Outer-Post-Proficiency -> "Outer Post Proficiency ○" - Maverick -> "Maverick ○" - Competitive-Spirit -> "Competitive Spirit ○" - Target-in-Sight -> "Target in Sight ○" - Long-Shot -> "Long Shot ○" - Corner-Adept -> "Corner Adept ○" - Corner-Acceleration -> "Corner Acceleration ○" - Corner-Recovery -> "Corner Recovery ○" - Straightaway-Adept -> "Straightaway Adept" - Straightaway-Acceleration -> "Straightaway Acceleration" - Straightaway-Recovery -> "Straightaway Recovery" - Focus -> "Focus" - Lay-Low -> "Lay Low" - Prudent-Positioning -> "Prudent Positioning" - Ramp-Up -> "Ramp Up" - Pace-Strategy -> "Pace Strategy" - Calm-in-a-Crowd -> "Calm in a Crowd" - Nimble-Navigator -> "Nimble Navigator" - Go-with-the-Flow -> "Go with the Flow" - Homestretch-Haste -> "Homestretch Haste" - Early-Lead -> "Early Lead" - Fast-Paced -> "Fast-Paced" - Final-Push -> "Final Push" - Stamina-to-Spare -> "Stamina to Spare" - Preferred-Position -> "Preferred Position" - Prepared-to-Pass -> "Prepared to Pass" - Position-Pilfer -> "Position Pilfer" - Slick-Surge -> "Slick Surge" - Outer-Swell -> "Outer Swell" - Standing-By -> "Standing By" - Masterful-Gambit -> "Masterful Gambit" - Straightaway-Spurt -> "Straightaway Spurt" - Sprinting-Gear -> "Sprinting Gear" - Wait-and-See -> "Wait-and-See" - Gap-Closer -> "Gap Closer" - Productive-Plan -> "Productive Plan" - Watchful-Eye -> "Watchful Eye" - Updrafters -> "Updrafters" - Rosy-Outlook -> "Rosy Outlook" - Up-Tempo -> "Up-Tempo" - Steadfast -> "Steadfast" - Deep-Breaths -> "Deep Breaths" - Inside-Scoop -> "Inside Scoop" - Extra-Tank -> "Extra Tank" - Trick-Front -> "Trick (Front)" - Trick-Rear -> "Trick (Rear)" - Frenzied-Front-Runners -> "Frenzied Front Runners" - Frenzied-Pace-Chasers -> "Frenzied Pace Chasers" - Frenzied-Late-Surgers -> "Frenzied Late Surgers" - Frenzied-End-Closers -> "Frenzied End Closers" - Subdued-Front-Runners -> "Subdued Front Runners" - Flustered-Front-Runners -> "Flustered Front Runners" - Hesitant-Front-Runners -> "Hesitant Front Runners" - Subdued-Pace-Chasers -> "Subdued Pace Chasers" - Flustered-Pace-Chasers -> "Flustered Pace Chasers" - Hesitant-Pace-Chasers -> "Hesitant Pace Chasers" - Subdued-Late-Surgers -> "Subdued Late Surgers" - Flustered-Late-Surgers -> "Flustered Late Surgers" - Hesitant-Late-Surgers -> "Hesitant Late Surgers" - Subdued-End-Closers -> "Subdued End Closers" - Flustered-End-Closers -> "Flustered End Closers" - Hesitant-End-Closers -> "Hesitant End Closers" - Oi-Racecourse -> "Oi Racecourse ○" - Sprint-Straightaways -> "Sprint Straightaways ○" - Sprint-Corners -> "Sprint Corners ○" - Huge-Lead -> "Huge Lead" - Countermeasure -> "Countermeasure" - Meticulous-Measures -> "Meticulous Measures" - Intimidate -> "Intimidate" - Stop-Right-There -> "Stop Right There!" - Mile-Straightaways -> "Mile Straightaways ○" - Mile-Corners -> "Mile Corners ○" - Shifting-Gears -> "Shifting Gears" - Acceleration -> "Acceleration" - Unyielding-Spirit -> "Unyielding Spirit" - Speed-Eater -> "Speed Eater" - Opening-Gambit -> "Opening Gambit" - Medium-Straightaways -> "Medium Straightaways ○" - Medium-Corners -> "Medium Corners ○" - Hawkeye -> "Hawkeye" - Thunderbolt-Step -> "Thunderbolt Step" - Soft-Step -> "Soft Step" - Tether -> "Tether" - Murmur -> "Murmur" - Long-Straightaways -> "Long Straightaways ○" - Long-Corners -> "Long Corners ○" - Keeping-the-Lead -> "Keeping the Lead" - Passing-Pro -> "Passing Pro" - Pressure -> "Pressure" - Stamina-Eater -> "Stamina Eater" - Smoke-Screen -> "Smoke Screen" - Front-Runner-Straightaways -> "Front Runner Straightaways ○" - Front-Runner-Corners -> "Front Runner Corners ○" - Dodging-Danger -> "Dodging Danger" - Leaders-Pride -> "Leader's Pride" - Moxie -> "Moxie" - Second-Wind -> "Second Wind" - Restart -> "Restart" - Pace-Chaser-Straightaways -> "Pace Chaser Straightaways ○" - Pace-Chaser-Corners -> "Pace Chaser Corners ○" - Shrewd-Step -> "Shrewd Step" - Straight-Descent -> "Straight Descent" - Hydrate -> "Hydrate" - Tactical-Tweak -> "Tactical Tweak" - Disorient -> "Disorient" - Late-Surger-Straightaways -> "Late Surger Straightaways ○" - Late-Surger-Corners -> "Late Surger Corners ○" - Fighter -> "Fighter" - One-Million-CC -> "1,500,000 CC" - A-Small-Breather -> "A Small Breather" - Studious -> "Studious" - Sharp-Gaze -> "Sharp Gaze" - End-Closer-Straightaways -> "End Closer Straightaways ○" - End-Closer-Corners -> "End Closer Corners ○" - I-Can-See-Right-Through-You -> "I Can See Right Through You" - After-School-Stroll -> "After-School Stroll" - Levelheaded -> "Levelheaded" - Strategist -> "Strategist" - Intense-Gaze -> "Intense Gaze" - Front-Runner-Savvy -> "Front Runner Savvy ○" - Pace-Chaser-Savvy -> "Pace Chaser Savvy ○" - Late-Surger-Savvy -> "Late Surger Savvy ○" - End-Closer-Savvy -> "End Closer Savvy ○" - Lucky-Seven -> "Lucky Seven" - Triple-Sevens -> "Triple 7s" - Highlander -> "Highlander" - Uma-Stan -> "Uma Stan" - Groundwork -> "Groundwork" - Tail-Held-High -> "Tail Held High" - Shake-It-Out -> "Shake It Out" - Sympathy -> "Sympathy" - Lone-Wolf -> "Lone Wolf" - Slipstream -> "Slipstream" - Playtimes-Over -> "Playtime's Over!" - Top-Pick -> "Top Pick" - Forward-March -> "Forward, March!" - Be-Still -> "Be Still" - All-I-ve-Got -> "All I've Got" - Head-On -> "Head-On" - Familiar-Ground -> "Familiar Ground" - Early-Start -> "Early Start" - Risky-Business -> "Risky Business" - Ignited-Spirit-SPD -> "Ignited Spirit SPD" - Ignited-Spirit-STA -> "Ignited Spirit STA" - Ignited-Spirit-PWR -> "Ignited Spirit PWR" - Ignited-Spirit-GUTS -> "Ignited Spirit GUTS" - Ignited-Spirit-WIT -> "Ignited Spirit WIT" - Unquenched-Thirst -> "Unquenched Thirst" - Unchanging -> "Unchanging" - Towards-the-Scenery-I-Seek -> "Towards the Scenery I Seek" - Creeping-Anxiety -> "Creeping Anxiety" - Blatant-Fear -> "Blatant Fear" - Dream-Run -> "Dream Run" - Show-Me-What-Lies-Beyond -> "Show Me What Lies Beyond!" - Hoiya-Have-a-Good-Run -> "Hoiya! Have a Good Run!" - As-a-Friend-and-Rival -> "As a Friend and Rival" - Cheers-of-a-Fellow-Dreamer -> "Cheers of a Fellow Dreamer" - -// Compare two skill groups by ID order. -pub fip fun skill-group/order2(a: skill-group, b: skill-group): order2 - match cmp(a.group-id, b.group-id) - Lt -> Lt2(a, b) - Eq -> Eq2(a) - Gt -> Gt2(a, b) - -pub fun skill-group/(==)(a: skill-group, b: skill-group): bool - a.group-id == b.group-id \ No newline at end of file diff --git a/horse/global/skill.kk b/horse/global/skill.kk index b3b5a06..b94f31a 100644 --- a/horse/global/skill.kk +++ b/horse/global/skill.kk @@ -2,2965 +2,13719 @@ module horse/global/skill // Automatically generated with horsegen; DO NOT EDIT +import std/data/rb-map import std/num/decimal -pub import horse/global/skill-group +import horse/game-id +import horse/movement +pub import horse/skill -// Skill instances. -pub type skill - Warning-Shot - Xceleration - Red-Ace - Focused-Mind - Corazon-Ardiente - Empresss-Pride - First-Place-Kiss - Feel-the-Burn - Introduction-to-Physiology - V-Is-for-Victory - Class-Rep-Speed-Bakushin - Clear-Heart - Super-Duper-Stoked - Luck-Be-with-Me - I-Can-Win-Sometimes-Right - Call-Me-King - Shooting-Star - The-View-from-the-Lead-Is-Mine - Sky-High-Teio-Step - Red-Shift-LP1211-M - Lights-of-Vaudeville - Triumphant-Pulse - Anchors-Aweigh - Cut-and-Drive - Resplendent-Red-Ace - Shooting-for-Victory - Where-Theres-a-Will-Theres-a-Way - You-and-Me-One-on-One - The-Duty-of-Dignity-Calls - Victoria-por-plancha - This-Dance-Is-for-Vittoria - Shadow-Break - Behold-Thine-Emperors-Divine-Might - Blazing-Pride - OMG-The-Final-Sprint - Angling-and-Scheming - White-Lightning-Comin-Through - Fairy-Tale - Win-QED - Flashy-Landing - Chasing-After-You - G00-First-FInfinity - Lets-Pump-Some-Iron - YUMMY-SPEED - Blue-Rose-Closer - U-ma2 - Our-Ticket-to-Win - Schwarzes-Schwert - LookatCurren - A-Princess-Must-Seize-Victory - KEEP-IT-REAL - Genius-x-Bakushin-Victory - Pure-Heart - SPARKLY-STARDOM - Pop-and-Polish - Nemesis - Super-Duper-Climax - I-See-Victory-in-My-Future - I-Never-Goof-Up - Moving-Past-and-Beyond - Just-a-Little-Farther - Prideful-King - Dazzl-n-Diver - Certain-Victory - A-Kiss-for-Courage - Festive-Miracle - Superior-Heal - Legacy-of-the-Strong - Condors-Fury - Arrows-Whistle-Shadows-Disperse - Eternal-Moments - Presents-from-X - Flowery-Maneuver - Every-Rose-Has-Its-Fangs - Dancing-in-the-Leaves - Give-Mummy-a-Hug - Bountiful-Harvest - Right-Handed-Lv2 - Right-Handed - Right-Handed-x - Left-Handed-Lv2 - Left-Handed - Left-Handed-x - Tokyo-Racecourse-Lv2 - Tokyo-Racecourse - Tokyo-Racecourse-x - Nakayama-Racecourse-Lv2 - Nakayama-Racecourse - Nakayama-Racecourse-x - Hanshin-Racecourse-Lv2 - Hanshin-Racecourse - Hanshin-Racecourse-x - Kyoto-Racecourse-Lv2 - Kyoto-Racecourse - Kyoto-Racecourse-x - Yodo-Invicta - Chukyo-Racecourse-Lv2 - Chukyo-Racecourse - Chukyo-Racecourse-x - Sapporo-Racecourse-Lv2 - Sapporo-Racecourse - Sapporo-Racecourse-x - Hakodate-Racecourse-Lv2 - Hakodate-Racecourse - Hakodate-Racecourse-x - Fukushima-Racecourse-Lv2 - Fukushima-Racecourse - Fukushima-Racecourse-x - Niigata-Racecourse-Lv2 - Niigata-Racecourse - Niigata-Racecourse-x - Kokura-Racecourse-Lv2 - Kokura-Racecourse - Kokura-Racecourse-x - Standard-Distance-Lv2 - Standard-Distance - Standard-Distance-x - Non-Standard-Distance-Lv2 - Non-Standard-Distance - Non-Standard-Distance-x - Firm-Conditions-Lv2 - Firm-Conditions - Firm-Conditions-x - Wet-Conditions-Lv2 - Wet-Conditions - Wet-Conditions-x - Spring-Runner-Lv2 - Spring-Runner - Spring-Runner-x - Summer-Runner-Lv2 - Summer-Runner - Summer-Runner-x - Fall-Runner-Lv2 - Fall-Runner - Fall-Runner-x - Fall-Frenzy - Winter-Runner-Lv2 - Winter-Runner - Winter-Runner-x - Sunny-Days-Lv2 - Sunny-Days - Cloudy-Days-Lv2 - Cloudy-Days - Rainy-Days-Lv2 - Rainy-Days - Rainy-Days-x - Snowy-Days-Lv2 - Snowy-Days - Inner-Post-Proficiency-Lv2 - Inner-Post-Proficiency - Inner-Post-Averseness - Outer-Post-Proficiency-Lv2 - Outer-Post-Proficiency - Outer-Post-Averseness - Maverick-Lv2 - Maverick - Competitive-Spirit-Lv2 - Competitive-Spirit - Wallflower - Target-in-Sight-Lv2 - Target-in-Sight - Long-Shot-Lv2 - Long-Shot - G1-Averseness - Paddock-Fright - Professor-of-Curvature - Corner-Adept - Corner-Adept-x - Corner-Connoisseur - Corner-Acceleration - Corner-Acceleration-x - Swinging-Maestro - Corner-Recovery - Corner-Recovery-x - Beeline-Burst - Straightaway-Adept - Rushing-Gale - Straightaway-Acceleration - Breath-of-Fresh-Air - Straightaway-Recovery - Ramp-Revulsion - Packphobia - Defeatist - Reckless - Concentration - Focus - Gatekept - Iron-Will - Lay-Low - Center-Stage - Prudent-Positioning - Its-On - Ramp-Up - Indomitable - Pace-Strategy - Unruffled - Calm-in-a-Crowd - No-Stopping-Me - Nimble-Navigator - Lane-Legerdemain - Go-with-the-Flow - In-Body-and-Mind - Homestretch-Haste - Running-Idle - Taking-the-Lead - Early-Lead - Escape-Artist - Fast-Paced - Unrestrained - Final-Push - Calm-and-Collected - Stamina-to-Spare - Race-Planner - Preferred-Position - Speed-Star - Prepared-to-Pass - Fast-and-Furious - Position-Pilfer - On-Your-Left - Slick-Surge - Rising-Dragon - Outer-Swell - Sleeping-Lion - Standing-By - Sturm-und-Drang - Masterful-Gambit - Encroaching-Shadow - Straightaway-Spurt - Turbo-Sprint - Sprinting-Gear - Wait-and-See - Blinding-Flash - Gap-Closer - Mile-Maven - Productive-Plan - Keen-Eye - Watchful-Eye - Furious-Feat - Updrafters - Trackblazer - Rosy-Outlook - Killer-Tunes - Up-Tempo - Unyielding - Steadfast - Cooldown - Deep-Breaths - Innate-Experience - Inside-Scoop - Adrenaline-Rush - Extra-Tank - Trick-Front - Tantalizing-Trick - Trick-Rear - Frenzied-Front-Runners - Frenzied-Pace-Chasers - Frenzied-Late-Surgers - Frenzied-End-Closers - Subdued-Front-Runners - Flustered-Front-Runners - Hesitant-Front-Runners - Subdued-Pace-Chasers - Flustered-Pace-Chasers - Hesitant-Pace-Chasers - Subdued-Late-Surgers - Flustered-Late-Surgers - Hesitant-Late-Surgers - Subdued-End-Closers - Flustered-End-Closers - Hesitant-End-Closers - Oi-Racecourse-Lv2 - Oi-Racecourse - Oi-Racecourse-x - Sprint-Straightaways-Lv2 - Sprint-Straightaways - Sprint-Corners-Lv2 - Sprint-Corners - Staggering-Lead - Huge-Lead - Plan-X - Countermeasure - Perfect-Prep - Meticulous-Measures - Adored-by-All - Intimidate - You-ve-Got-No-Shot - Stop-Right-There - Mile-Straightaways-Lv2 - Mile-Straightaways - Mile-Corners-Lv2 - Mile-Corners - Changing-Gears - Shifting-Gears - Step-on-the-Gas - Acceleration - Big-Sisterly - Unyielding-Spirit - Greed-for-Speed - Speed-Eater - Battle-Formation - Opening-Gambit - Medium-Straightaways-Lv2 - Medium-Straightaways - Medium-Corners-Lv2 - Medium-Corners - Clairvoyance - Hawkeye - Lightning-Step - Thunderbolt-Step - Miraculous-Step - Soft-Step - Dominator - Tether - Mystifying-Murmur - Murmur - Long-Straightaways-Lv2 - Long-Straightaways - Long-Corners-Lv2 - Long-Corners - Vanguard-Spirit - Keeping-the-Lead - VIP-Pass - Passing-Pro - Overwhelming-Pressure - Pressure - Stamina-Siphon - Stamina-Eater - Illusionist - Smoke-Screen - Front-Runner-Straightaways-Lv2 - Front-Runner-Straightaways - Front-Runner-Corners-Lv2 - Front-Runner-Corners - Sixth-Sense - Dodging-Danger - Leaders-Pride - Restless - Moxie - Reignition - Second-Wind - Restart - Pace-Chaser-Straightaways-Lv2 - Pace-Chaser-Straightaways - Pace-Chaser-Corners-Lv2 - Pace-Chaser-Corners - Technician - Shrewd-Step - Determined-Descent - Straight-Descent - Gourmand - Hydrate - Shatterproof - Tactical-Tweak - Dazzling-Disorientation - Disorient - Late-Surger-Straightaways-Lv2 - Late-Surger-Straightaways - Late-Surger-Corners-Lv2 - Late-Surger-Corners - Hard-Worker - Fighter - Fifteen-Million-CC - One-Million-CC - Relax - A-Small-Breather - The-Bigger-Picture - Studious - All-Seeing-Eyes - Sharp-Gaze - End-Closer-Straightaways-Lv2 - End-Closer-Straightaways - End-Closer-Corners-Lv2 - End-Closer-Corners - The-Coast-Is-Clear - I-Can-See-Right-Through-You - Go-Home-Specialist - After-School-Stroll - Serenity - Levelheaded - Crusader - Strategist - Petrifying-Gaze - Intense-Gaze - Front-Runner-Savvy-Lv2 - Front-Runner-Savvy - Pace-Chaser-Savvy-Lv2 - Pace-Chaser-Savvy - Late-Surger-Savvy-Lv2 - Late-Surger-Savvy - End-Closer-Savvy-Lv2 - End-Closer-Savvy - Super-Lucky-Seven - Lucky-Seven - Triple-Sevens - Highlander - Uma-Stan - Superstan - Groundwork - Tail-Held-High - Tail-Nine - Shake-It-Out - Sympathy - Lone-Wolf - Slipstream - Playtimes-Over - Trending-in-the-Charts - Top-Pick - Lead-the-Charge - Forward-March - Lie-in-Wait - Be-Still - Come-What-May - All-I-ve-Got - Nail-Art - Head-On - Familiar-Ground - Early-Start - Risky-Business - Runaway - Burning-Spirit-SPD - Ignited-Spirit-SPD - Burning-Spirit-STA - Ignited-Spirit-STA - Burning-Spirit-PWR - Ignited-Spirit-PWR - Burning-Spirit-GUTS - Ignited-Spirit-GUTS - Burning-Spirit-WIT - Ignited-Spirit-WIT - Unquenched-Thirst - Unchanging - Towards-the-Scenery-I-Seek - Creeping-Anxiety - Blatant-Fear - Dream-Run - Show-Me-What-Lies-Beyond - Hoiya-Have-a-Good-Run - As-a-Friend-and-Rival - Cheers-of-a-Fellow-Dreamer - Shooting-Star-Inherit - The-View-from-the-Lead-Is-Mine-Inherit - Sky-High-Teio-Step-Inherit - Red-Shift-LP1211-M-Inherit - Lights-of-Vaudeville-Inherit - Triumphant-Pulse-Inherit - Anchors-Aweigh-Inherit - Cut-and-Drive-Inherit - Resplendent-Red-Ace-Inherit - Shooting-for-Victory-Inherit - Where-Theres-a-Will-Theres-a-Way-Inherit - You-and-Me-One-on-One-Inherit - The-Duty-of-Dignity-Calls-Inherit - Victoria-por-plancha-Inherit - This-Dance-Is-for-Vittoria-Inherit - Shadow-Break-Inherit - Behold-Thine-Emperors-Divine-Might-Inherit - Blazing-Pride-Inherit - OMG-The-Final-Sprint-Inherit - Angling-and-Scheming-Inherit - White-Lightning-Comin-Through-Inherit - Fairy-Tale-Inherit - Win-QED-Inherit - Flashy-Landing-Inherit - Chasing-After-You-Inherit - G00-First-FInfinity-Inherit - Lets-Pump-Some-Iron-Inherit - YUMMY-SPEED-Inherit - Blue-Rose-Closer-Inherit - U-ma2-Inherit - Our-Ticket-to-Win-Inherit - Schwarzes-Schwert-Inherit - LookatCurren-Inherit - A-Princess-Must-Seize-Victory-Inherit - KEEP-IT-REAL-Inherit - Genius-x-Bakushin-Victory-Inherit - Pure-Heart-Inherit - SPARKLY-STARDOM-Inherit - Pop-and-Polish-Inherit - Nemesis-Inherit - Super-Duper-Climax-Inherit - I-See-Victory-in-My-Future-Inherit - I-Never-Goof-Up-Inherit - Moving-Past-and-Beyond-Inherit - Just-a-Little-Farther-Inherit - Prideful-King-Inherit - Dazzl-n-Diver-Inherit - Certain-Victory-Inherit - A-Kiss-for-Courage-Inherit - Festive-Miracle-Inherit - Superior-Heal-Inherit - Legacy-of-the-Strong-Inherit - Condors-Fury-Inherit - Arrows-Whistle-Shadows-Disperse-Inherit - Eternal-Moments-Inherit - Presents-from-X-Inherit - Flowery-Maneuver-Inherit - Every-Rose-Has-Its-Fangs-Inherit - Dancing-in-the-Leaves-Inherit - Give-Mummy-a-Hug-Inherit - Bountiful-Harvest-Inherit +val name2id: rbmap = rb-map/empty() + .set("Warning Shot!", Skill-id(10071)) + .set("Xceleration", Skill-id(10081)) + .set("Red Ace", Skill-id(10091)) + .set("Focused Mind", Skill-id(10111)) + .set("Corazón ☆ Ardiente", Skill-id(10141)) + .set("Empress's Pride", Skill-id(10181)) + .set("1st Place Kiss☆", Skill-id(10241)) + .set("Feel the Burn!", Skill-id(10271)) + .set("Introduction to Physiology", Skill-id(10321)) + .set("V Is for Victory!", Skill-id(10351)) + .set("Class Rep + Speed = Bakushin", Skill-id(10411)) + .set("Clear Heart", Skill-id(10451)) + .set("Super-Duper Stoked", Skill-id(10521)) + .set("Luck Be with Me!", Skill-id(10561)) + .set("I Can Win Sometimes, Right?", Skill-id(10601)) + .set("Call Me King", Skill-id(10611)) + .set("Shooting Star", Skill-id(100011)) + .set("The View from the Lead Is Mine!", Skill-id(100021)) + .set("Sky-High Teio Step", Skill-id(100031)) + .set("Red Shift/LP1211-M", Skill-id(100041)) + .set("Lights of Vaudeville", Skill-id(100051)) + .set("Triumphant Pulse", Skill-id(100061)) + .set("Anchors Aweigh!", Skill-id(100071)) + .set("Cut and Drive!", Skill-id(100081)) + .set("Resplendent Red Ace", Skill-id(100091)) + .set("Shooting for Victory!", Skill-id(100101)) + .set("Where There's a Will, There's a Way", Skill-id(100111)) + .set("You and Me! One-on-One!", Skill-id(100121)) + .set("The Duty of Dignity Calls", Skill-id(100131)) + .set("Victoria por plancha ☆", Skill-id(100141)) + .set("This Dance Is for Vittoria!", Skill-id(100151)) + .set("Shadow Break", Skill-id(100161)) + .set("Behold Thine Emperor's Divine Might", Skill-id(100171)) + .set("Blazing Pride", Skill-id(100181)) + .set("OMG! (゚∀゚) The Final Sprint! ☆", Skill-id(100191)) + .set("Angling and Scheming", Skill-id(100201)) + .set("White Lightning Comin' Through!", Skill-id(100211)) + .set("Fairy Tale", Skill-id(100221)) + .set("∴win Q.E.D.", Skill-id(100231)) + .set("Flashy☆Landing", Skill-id(100241)) + .set("Chasing After You", Skill-id(100251)) + .set("G00 1st. F∞;", Skill-id(100261)) + .set("Let's Pump Some Iron!", Skill-id(100271)) + .set("YUMMY☆SPEED!", Skill-id(100281)) + .set("Blue Rose Closer", Skill-id(100301)) + .set("U=ma2", Skill-id(100321)) + .set("Our Ticket to Win!", Skill-id(100351)) + .set("Schwarzes Schwert", Skill-id(100371)) + .set("#LookatCurren", Skill-id(100381)) + .set("A Princess Must Seize Victory!", Skill-id(100391)) + .set("KEEP IT REAL.", Skill-id(100401)) + .set("Genius x Bakushin = Victory", Skill-id(100411)) + .set("Pure Heart", Skill-id(100451)) + .set("SPARKLY☆STARDOM", Skill-id(100461)) + .set("Pop & Polish", Skill-id(100481)) + .set("Nemesis", Skill-id(100501)) + .set("Super-Duper Climax", Skill-id(100521)) + .set("I See Victory in My Future!", Skill-id(100561)) + .set("I Never Goof Up!", Skill-id(100581)) + .set("Moving Past, and Beyond", Skill-id(100591)) + .set("Just a Little Farther!", Skill-id(100601)) + .set("Prideful King", Skill-id(100611)) + .set("Dazzl'n ♪ Diver", Skill-id(110011)) + .set("Certain Victory", Skill-id(110031)) + .set("A Kiss for Courage", Skill-id(110041)) + .set("Festive Miracle", Skill-id(110061)) + .set("Superior Heal", Skill-id(110111)) + .set("Legacy of the Strong", Skill-id(110131)) + .set("Condor's Fury", Skill-id(110141)) + .set("Arrows Whistle, Shadows Disperse", Skill-id(110171)) + .set("Eternal Moments", Skill-id(110181)) + .set("Presents from X", Skill-id(110231)) + .set("Flowery☆Maneuver", Skill-id(110241)) + .set("Every Rose Has Its Fangs", Skill-id(110301)) + .set("Dancing in the Leaves", Skill-id(110401)) + .set("Give Mummy a Hug ♡", Skill-id(110451)) + .set("Bountiful Harvest", Skill-id(110561)) + .set("Right-Handed ◎", Skill-id(200011)) + .set("Right-Handed ○", Skill-id(200012)) + .set("Right-Handed ×", Skill-id(200013)) + .set("Left-Handed ◎", Skill-id(200021)) + .set("Left-Handed ○", Skill-id(200022)) + .set("Left-Handed ×", Skill-id(200023)) + .set("Tokyo Racecourse ◎", Skill-id(200031)) + .set("Tokyo Racecourse ○", Skill-id(200032)) + .set("Tokyo Racecourse ×", Skill-id(200033)) + .set("Nakayama Racecourse ◎", Skill-id(200041)) + .set("Nakayama Racecourse ○", Skill-id(200042)) + .set("Nakayama Racecourse ×", Skill-id(200043)) + .set("Hanshin Racecourse ◎", Skill-id(200051)) + .set("Hanshin Racecourse ○", Skill-id(200052)) + .set("Hanshin Racecourse ×", Skill-id(200053)) + .set("Kyoto Racecourse ◎", Skill-id(200061)) + .set("Kyoto Racecourse ○", Skill-id(200062)) + .set("Kyoto Racecourse ×", Skill-id(200063)) + .set("Yodo Invicta", Skill-id(200064)) + .set("Chukyo Racecourse ◎", Skill-id(200071)) + .set("Chukyo Racecourse ○", Skill-id(200072)) + .set("Chukyo Racecourse ×", Skill-id(200073)) + .set("Sapporo Racecourse ◎", Skill-id(200081)) + .set("Sapporo Racecourse ○", Skill-id(200082)) + .set("Sapporo Racecourse ×", Skill-id(200083)) + .set("Hakodate Racecourse ◎", Skill-id(200091)) + .set("Hakodate Racecourse ○", Skill-id(200092)) + .set("Hakodate Racecourse ×", Skill-id(200093)) + .set("Fukushima Racecourse ◎", Skill-id(200101)) + .set("Fukushima Racecourse ○", Skill-id(200102)) + .set("Fukushima Racecourse ×", Skill-id(200103)) + .set("Niigata Racecourse ◎", Skill-id(200111)) + .set("Niigata Racecourse ○", Skill-id(200112)) + .set("Niigata Racecourse ×", Skill-id(200113)) + .set("Kokura Racecourse ◎", Skill-id(200121)) + .set("Kokura Racecourse ○", Skill-id(200122)) + .set("Kokura Racecourse ×", Skill-id(200123)) + .set("Standard Distance ◎", Skill-id(200131)) + .set("Standard Distance ○", Skill-id(200132)) + .set("Standard Distance ×", Skill-id(200133)) + .set("Non-Standard Distance ◎", Skill-id(200141)) + .set("Non-Standard Distance ○", Skill-id(200142)) + .set("Non-Standard Distance ×", Skill-id(200143)) + .set("Firm Conditions ◎", Skill-id(200151)) + .set("Firm Conditions ○", Skill-id(200152)) + .set("Firm Conditions ×", Skill-id(200153)) + .set("Wet Conditions ◎", Skill-id(200161)) + .set("Wet Conditions ○", Skill-id(200162)) + .set("Wet Conditions ×", Skill-id(200163)) + .set("Spring Runner ◎", Skill-id(200171)) + .set("Spring Runner ○", Skill-id(200172)) + .set("Spring Runner ×", Skill-id(200173)) + .set("Summer Runner ◎", Skill-id(200181)) + .set("Summer Runner ○", Skill-id(200182)) + .set("Summer Runner ×", Skill-id(200183)) + .set("Fall Runner ◎", Skill-id(200191)) + .set("Fall Runner ○", Skill-id(200192)) + .set("Fall Runner ×", Skill-id(200193)) + .set("Fall Frenzy", Skill-id(200194)) + .set("Winter Runner ◎", Skill-id(200201)) + .set("Winter Runner ○", Skill-id(200202)) + .set("Winter Runner ×", Skill-id(200203)) + .set("Sunny Days ◎", Skill-id(200211)) + .set("Sunny Days ○", Skill-id(200212)) + .set("Cloudy Days ◎", Skill-id(200221)) + .set("Cloudy Days ○", Skill-id(200222)) + .set("Rainy Days ◎", Skill-id(200231)) + .set("Rainy Days ○", Skill-id(200232)) + .set("Rainy Days ×", Skill-id(200233)) + .set("Snowy Days ◎", Skill-id(200241)) + .set("Snowy Days ○", Skill-id(200242)) + .set("Inner Post Proficiency ◎", Skill-id(200251)) + .set("Inner Post Proficiency ○", Skill-id(200252)) + .set("Inner Post Averseness", Skill-id(200253)) + .set("Outer Post Proficiency ◎", Skill-id(200261)) + .set("Outer Post Proficiency ○", Skill-id(200262)) + .set("Outer Post Averseness", Skill-id(200263)) + .set("Maverick ◎", Skill-id(200271)) + .set("Maverick ○", Skill-id(200272)) + .set("Competitive Spirit ◎", Skill-id(200281)) + .set("Competitive Spirit ○", Skill-id(200282)) + .set("Wallflower", Skill-id(200283)) + .set("Target in Sight ◎", Skill-id(200291)) + .set("Target in Sight ○", Skill-id(200292)) + .set("Long Shot ◎", Skill-id(200301)) + .set("Long Shot ○", Skill-id(200302)) + .set("G1 Averseness", Skill-id(200311)) + .set("Paddock Fright", Skill-id(200321)) + .set("Professor of Curvature", Skill-id(200331)) + .set("Corner Adept ○", Skill-id(200332)) + .set("Corner Adept ×", Skill-id(200333)) + .set("Corner Connoisseur", Skill-id(200341)) + .set("Corner Acceleration ○", Skill-id(200342)) + .set("Corner Acceleration ×", Skill-id(200343)) + .set("Swinging Maestro", Skill-id(200351)) + .set("Corner Recovery ○", Skill-id(200352)) + .set("Corner Recovery ×", Skill-id(200353)) + .set("Beeline Burst", Skill-id(200361)) + .set("Straightaway Adept", Skill-id(200362)) + .set("Rushing Gale!", Skill-id(200371)) + .set("Straightaway Acceleration", Skill-id(200372)) + .set("Breath of Fresh Air", Skill-id(200381)) + .set("Straightaway Recovery", Skill-id(200382)) + .set("Ramp Revulsion", Skill-id(200391)) + .set("Packphobia", Skill-id(200401)) + .set("Defeatist", Skill-id(200411)) + .set("Reckless", Skill-id(200421)) + .set("Concentration", Skill-id(200431)) + .set("Focus", Skill-id(200432)) + .set("Gatekept", Skill-id(200433)) + .set("Iron Will", Skill-id(200441)) + .set("Lay Low", Skill-id(200442)) + .set("Center Stage", Skill-id(200451)) + .set("Prudent Positioning", Skill-id(200452)) + .set("It's On!", Skill-id(200461)) + .set("Ramp Up", Skill-id(200462)) + .set("Indomitable", Skill-id(200471)) + .set("Pace Strategy", Skill-id(200472)) + .set("Unruffled", Skill-id(200481)) + .set("Calm in a Crowd", Skill-id(200482)) + .set("No Stopping Me!", Skill-id(200491)) + .set("Nimble Navigator", Skill-id(200492)) + .set("Lane Legerdemain", Skill-id(200501)) + .set("Go with the Flow", Skill-id(200502)) + .set("In Body and Mind", Skill-id(200511)) + .set("Homestretch Haste", Skill-id(200512)) + .set("Running Idle", Skill-id(200521)) + .set("Taking the Lead", Skill-id(200531)) + .set("Early Lead", Skill-id(200532)) + .set("Escape Artist", Skill-id(200541)) + .set("Fast-Paced", Skill-id(200542)) + .set("Unrestrained", Skill-id(200551)) + .set("Final Push", Skill-id(200552)) + .set("Calm and Collected", Skill-id(200561)) + .set("Stamina to Spare", Skill-id(200562)) + .set("Race Planner", Skill-id(200571)) + .set("Preferred Position", Skill-id(200572)) + .set("Speed Star", Skill-id(200581)) + .set("Prepared to Pass", Skill-id(200582)) + .set("Fast & Furious", Skill-id(200591)) + .set("Position Pilfer", Skill-id(200592)) + .set("On Your Left!", Skill-id(200601)) + .set("Slick Surge", Skill-id(200602)) + .set("Rising Dragon", Skill-id(200611)) + .set("Outer Swell", Skill-id(200612)) + .set("Sleeping Lion", Skill-id(200621)) + .set("Standing By", Skill-id(200622)) + .set("Sturm und Drang", Skill-id(200631)) + .set("Masterful Gambit", Skill-id(200632)) + .set("Encroaching Shadow", Skill-id(200641)) + .set("Straightaway Spurt", Skill-id(200642)) + .set("Turbo Sprint", Skill-id(200651)) + .set("Sprinting Gear", Skill-id(200652)) + .set("Wait-and-See", Skill-id(200662)) + .set("Blinding Flash", Skill-id(200671)) + .set("Gap Closer", Skill-id(200672)) + .set("Mile Maven", Skill-id(200681)) + .set("Productive Plan", Skill-id(200682)) + .set("Keen Eye", Skill-id(200691)) + .set("Watchful Eye", Skill-id(200692)) + .set("Furious Feat", Skill-id(200701)) + .set("Updrafters", Skill-id(200702)) + .set("Trackblazer", Skill-id(200711)) + .set("Rosy Outlook", Skill-id(200712)) + .set("Killer Tunes", Skill-id(200721)) + .set("Up-Tempo", Skill-id(200722)) + .set("Unyielding", Skill-id(200731)) + .set("Steadfast", Skill-id(200732)) + .set("Cooldown", Skill-id(200741)) + .set("Deep Breaths", Skill-id(200742)) + .set("Innate Experience", Skill-id(200751)) + .set("Inside Scoop", Skill-id(200752)) + .set("Adrenaline Rush", Skill-id(200761)) + .set("Extra Tank", Skill-id(200762)) + .set("Trick (Front)", Skill-id(200771)) + .set("Tantalizing Trick", Skill-id(200772)) + .set("Trick (Rear)", Skill-id(200781)) + .set("Frenzied Front Runners", Skill-id(200791)) + .set("Frenzied Pace Chasers", Skill-id(200801)) + .set("Frenzied Late Surgers", Skill-id(200811)) + .set("Frenzied End Closers", Skill-id(200821)) + .set("Subdued Front Runners", Skill-id(200831)) + .set("Flustered Front Runners", Skill-id(200841)) + .set("Hesitant Front Runners", Skill-id(200851)) + .set("Subdued Pace Chasers", Skill-id(200861)) + .set("Flustered Pace Chasers", Skill-id(200871)) + .set("Hesitant Pace Chasers", Skill-id(200881)) + .set("Subdued Late Surgers", Skill-id(200891)) + .set("Flustered Late Surgers", Skill-id(200901)) + .set("Hesitant Late Surgers", Skill-id(200911)) + .set("Subdued End Closers", Skill-id(200921)) + .set("Flustered End Closers", Skill-id(200931)) + .set("Hesitant End Closers", Skill-id(200941)) + .set("Oi Racecourse ◎", Skill-id(200951)) + .set("Oi Racecourse ○", Skill-id(200952)) + .set("Oi Racecourse ×", Skill-id(200953)) + .set("Sprint Straightaways ◎", Skill-id(200961)) + .set("Sprint Straightaways ○", Skill-id(200962)) + .set("Sprint Corners ◎", Skill-id(200971)) + .set("Sprint Corners ○", Skill-id(200972)) + .set("Staggering Lead", Skill-id(200981)) + .set("Huge Lead", Skill-id(200982)) + .set("Plan X", Skill-id(200991)) + .set("Countermeasure", Skill-id(200992)) + .set("Perfect Prep!", Skill-id(201001)) + .set("Meticulous Measures", Skill-id(201002)) + .set("Adored by All", Skill-id(201011)) + .set("Intimidate", Skill-id(201012)) + .set("You've Got No Shot", Skill-id(201021)) + .set("Stop Right There!", Skill-id(201022)) + .set("Mile Straightaways ◎", Skill-id(201031)) + .set("Mile Straightaways ○", Skill-id(201032)) + .set("Mile Corners ◎", Skill-id(201041)) + .set("Mile Corners ○", Skill-id(201042)) + .set("Changing Gears", Skill-id(201051)) + .set("Shifting Gears", Skill-id(201052)) + .set("Step on the Gas!", Skill-id(201061)) + .set("Acceleration", Skill-id(201062)) + .set("Big-Sisterly", Skill-id(201071)) + .set("Unyielding Spirit", Skill-id(201072)) + .set("Greed for Speed", Skill-id(201081)) + .set("Speed Eater", Skill-id(201082)) + .set("Battle Formation", Skill-id(201091)) + .set("Opening Gambit", Skill-id(201092)) + .set("Medium Straightaways ◎", Skill-id(201101)) + .set("Medium Straightaways ○", Skill-id(201102)) + .set("Medium Corners ◎", Skill-id(201111)) + .set("Medium Corners ○", Skill-id(201112)) + .set("Clairvoyance", Skill-id(201121)) + .set("Hawkeye", Skill-id(201122)) + .set("Lightning Step", Skill-id(201131)) + .set("Thunderbolt Step", Skill-id(201132)) + .set("Miraculous Step", Skill-id(201141)) + .set("Soft Step", Skill-id(201142)) + .set("Dominator", Skill-id(201151)) + .set("Tether", Skill-id(201152)) + .set("Mystifying Murmur", Skill-id(201161)) + .set("Murmur", Skill-id(201162)) + .set("Long Straightaways ◎", Skill-id(201171)) + .set("Long Straightaways ○", Skill-id(201172)) + .set("Long Corners ◎", Skill-id(201181)) + .set("Long Corners ○", Skill-id(201182)) + .set("Vanguard Spirit", Skill-id(201191)) + .set("Keeping the Lead", Skill-id(201192)) + .set("VIP Pass", Skill-id(201201)) + .set("Passing Pro", Skill-id(201202)) + .set("Overwhelming Pressure", Skill-id(201211)) + .set("Pressure", Skill-id(201212)) + .set("Stamina Siphon", Skill-id(201221)) + .set("Stamina Eater", Skill-id(201222)) + .set("Illusionist", Skill-id(201231)) + .set("Smoke Screen", Skill-id(201232)) + .set("Front Runner Straightaways ◎", Skill-id(201241)) + .set("Front Runner Straightaways ○", Skill-id(201242)) + .set("Front Runner Corners ◎", Skill-id(201251)) + .set("Front Runner Corners ○", Skill-id(201252)) + .set("Sixth Sense", Skill-id(201261)) + .set("Dodging Danger", Skill-id(201262)) + .set("Leader's Pride", Skill-id(201272)) + .set("Restless", Skill-id(201281)) + .set("Moxie", Skill-id(201282)) + .set("Reignition", Skill-id(201291)) + .set("Second Wind", Skill-id(201292)) + .set("Restart", Skill-id(201302)) + .set("Pace Chaser Straightaways ◎", Skill-id(201311)) + .set("Pace Chaser Straightaways ○", Skill-id(201312)) + .set("Pace Chaser Corners ◎", Skill-id(201321)) + .set("Pace Chaser Corners ○", Skill-id(201322)) + .set("Technician", Skill-id(201331)) + .set("Shrewd Step", Skill-id(201332)) + .set("Determined Descent", Skill-id(201341)) + .set("Straight Descent", Skill-id(201342)) + .set("Gourmand", Skill-id(201351)) + .set("Hydrate", Skill-id(201352)) + .set("Shatterproof", Skill-id(201361)) + .set("Tactical Tweak", Skill-id(201362)) + .set("Dazzling Disorientation", Skill-id(201371)) + .set("Disorient", Skill-id(201372)) + .set("Late Surger Straightaways ◎", Skill-id(201381)) + .set("Late Surger Straightaways ○", Skill-id(201382)) + .set("Late Surger Corners ◎", Skill-id(201391)) + .set("Late Surger Corners ○", Skill-id(201392)) + .set("Hard Worker", Skill-id(201401)) + .set("Fighter", Skill-id(201402)) + .set("15,000,000 CC", Skill-id(201411)) + .set("1,500,000 CC", Skill-id(201412)) + .set("Relax", Skill-id(201421)) + .set("A Small Breather", Skill-id(201422)) + .set("The Bigger Picture", Skill-id(201431)) + .set("Studious", Skill-id(201432)) + .set("All-Seeing Eyes", Skill-id(201441)) + .set("Sharp Gaze", Skill-id(201442)) + .set("End Closer Straightaways ◎", Skill-id(201451)) + .set("End Closer Straightaways ○", Skill-id(201452)) + .set("End Closer Corners ◎", Skill-id(201461)) + .set("End Closer Corners ○", Skill-id(201462)) + .set("The Coast Is Clear!", Skill-id(201471)) + .set("I Can See Right Through You", Skill-id(201472)) + .set("Go-Home Specialist", Skill-id(201481)) + .set("After-School Stroll", Skill-id(201482)) + .set("Serenity", Skill-id(201491)) + .set("Levelheaded", Skill-id(201492)) + .set("Crusader", Skill-id(201501)) + .set("Strategist", Skill-id(201502)) + .set("Petrifying Gaze", Skill-id(201511)) + .set("Intense Gaze", Skill-id(201512)) + .set("Front Runner Savvy ◎", Skill-id(201521)) + .set("Front Runner Savvy ○", Skill-id(201522)) + .set("Pace Chaser Savvy ◎", Skill-id(201531)) + .set("Pace Chaser Savvy ○", Skill-id(201532)) + .set("Late Surger Savvy ◎", Skill-id(201541)) + .set("Late Surger Savvy ○", Skill-id(201542)) + .set("End Closer Savvy ◎", Skill-id(201551)) + .set("End Closer Savvy ○", Skill-id(201552)) + .set("Super Lucky Seven", Skill-id(201561)) + .set("Lucky Seven", Skill-id(201562)) + .set("Triple 7s", Skill-id(201571)) + .set("Highlander", Skill-id(201581)) + .set("Uma Stan", Skill-id(201591)) + .set("Superstan", Skill-id(201592)) + .set("Groundwork", Skill-id(201601)) + .set("Tail Held High", Skill-id(201611)) + .set("Tail Nine", Skill-id(201612)) + .set("Shake It Out", Skill-id(201621)) + .set("Sympathy", Skill-id(201631)) + .set("Lone Wolf", Skill-id(201641)) + .set("Slipstream", Skill-id(201651)) + .set("Playtime's Over!", Skill-id(201661)) + .set("Trending in the Charts!", Skill-id(201671)) + .set("Top Pick", Skill-id(201672)) + .set("Lead the Charge!", Skill-id(201681)) + .set("Forward, March!", Skill-id(201682)) + .set("Lie in Wait", Skill-id(201691)) + .set("Be Still", Skill-id(201692)) + .set("Come What May", Skill-id(201701)) + .set("All I've Got", Skill-id(201702)) + .set("♡ 3D Nail Art", Skill-id(201801)) + .set("Head-On", Skill-id(201902)) + .set("Familiar Ground", Skill-id(202002)) + .set("Early Start", Skill-id(202022)) + .set("Risky Business", Skill-id(202032)) + .set("Runaway", Skill-id(202051)) + .set("Burning Spirit SPD", Skill-id(210011)) + .set("Ignited Spirit SPD", Skill-id(210012)) + .set("Burning Spirit STA", Skill-id(210021)) + .set("Ignited Spirit STA", Skill-id(210022)) + .set("Burning Spirit PWR", Skill-id(210031)) + .set("Ignited Spirit PWR", Skill-id(210032)) + .set("Burning Spirit GUTS", Skill-id(210041)) + .set("Ignited Spirit GUTS", Skill-id(210042)) + .set("Burning Spirit WIT", Skill-id(210051)) + .set("Ignited Spirit WIT", Skill-id(210052)) + .set("Unquenched Thirst", Skill-id(300011)) + .set("Unchanging", Skill-id(300021)) + .set("Towards the Scenery I Seek", Skill-id(300031)) + .set("Creeping Anxiety", Skill-id(300041)) + .set("Blatant Fear", Skill-id(300051)) + .set("Dream Run", Skill-id(300061)) + .set("Show Me What Lies Beyond!", Skill-id(300071)) + .set("Hoiya! Have a Good Run!", Skill-id(300081)) + .set("As a Friend and Rival", Skill-id(300091)) + .set("Cheers of a Fellow Dreamer", Skill-id(300101)) + .set("Shooting Star" ++ " (Inherited)", Skill-id(900011)) + .set("The View from the Lead Is Mine!" ++ " (Inherited)", Skill-id(900021)) + .set("Sky-High Teio Step" ++ " (Inherited)", Skill-id(900031)) + .set("Red Shift/LP1211-M" ++ " (Inherited)", Skill-id(900041)) + .set("Lights of Vaudeville" ++ " (Inherited)", Skill-id(900051)) + .set("Triumphant Pulse" ++ " (Inherited)", Skill-id(900061)) + .set("Anchors Aweigh!" ++ " (Inherited)", Skill-id(900071)) + .set("Cut and Drive!" ++ " (Inherited)", Skill-id(900081)) + .set("Resplendent Red Ace" ++ " (Inherited)", Skill-id(900091)) + .set("Shooting for Victory!" ++ " (Inherited)", Skill-id(900101)) + .set("Where There's a Will, There's a Way" ++ " (Inherited)", Skill-id(900111)) + .set("You and Me! One-on-One!" ++ " (Inherited)", Skill-id(900121)) + .set("The Duty of Dignity Calls" ++ " (Inherited)", Skill-id(900131)) + .set("Victoria por plancha ☆" ++ " (Inherited)", Skill-id(900141)) + .set("This Dance Is for Vittoria!" ++ " (Inherited)", Skill-id(900151)) + .set("Shadow Break" ++ " (Inherited)", Skill-id(900161)) + .set("Behold Thine Emperor's Divine Might" ++ " (Inherited)", Skill-id(900171)) + .set("Blazing Pride" ++ " (Inherited)", Skill-id(900181)) + .set("OMG! (゚∀゚) The Final Sprint! ☆" ++ " (Inherited)", Skill-id(900191)) + .set("Angling and Scheming" ++ " (Inherited)", Skill-id(900201)) + .set("White Lightning Comin' Through!" ++ " (Inherited)", Skill-id(900211)) + .set("Fairy Tale" ++ " (Inherited)", Skill-id(900221)) + .set("∴win Q.E.D." ++ " (Inherited)", Skill-id(900231)) + .set("Flashy☆Landing" ++ " (Inherited)", Skill-id(900241)) + .set("Chasing After You" ++ " (Inherited)", Skill-id(900251)) + .set("G00 1st. F∞;" ++ " (Inherited)", Skill-id(900261)) + .set("Let's Pump Some Iron!" ++ " (Inherited)", Skill-id(900271)) + .set("YUMMY☆SPEED!" ++ " (Inherited)", Skill-id(900281)) + .set("Blue Rose Closer" ++ " (Inherited)", Skill-id(900301)) + .set("U=ma2" ++ " (Inherited)", Skill-id(900321)) + .set("Our Ticket to Win!" ++ " (Inherited)", Skill-id(900351)) + .set("Schwarzes Schwert" ++ " (Inherited)", Skill-id(900371)) + .set("#LookatCurren" ++ " (Inherited)", Skill-id(900381)) + .set("A Princess Must Seize Victory!" ++ " (Inherited)", Skill-id(900391)) + .set("KEEP IT REAL." ++ " (Inherited)", Skill-id(900401)) + .set("Genius x Bakushin = Victory" ++ " (Inherited)", Skill-id(900411)) + .set("Pure Heart" ++ " (Inherited)", Skill-id(900451)) + .set("SPARKLY☆STARDOM" ++ " (Inherited)", Skill-id(900461)) + .set("Pop & Polish" ++ " (Inherited)", Skill-id(900481)) + .set("Nemesis" ++ " (Inherited)", Skill-id(900501)) + .set("Super-Duper Climax" ++ " (Inherited)", Skill-id(900521)) + .set("I See Victory in My Future!" ++ " (Inherited)", Skill-id(900561)) + .set("I Never Goof Up!" ++ " (Inherited)", Skill-id(900581)) + .set("Moving Past, and Beyond" ++ " (Inherited)", Skill-id(900591)) + .set("Just a Little Farther!" ++ " (Inherited)", Skill-id(900601)) + .set("Prideful King" ++ " (Inherited)", Skill-id(900611)) + .set("Dazzl'n ♪ Diver" ++ " (Inherited)", Skill-id(910011)) + .set("Certain Victory" ++ " (Inherited)", Skill-id(910031)) + .set("A Kiss for Courage" ++ " (Inherited)", Skill-id(910041)) + .set("Festive Miracle" ++ " (Inherited)", Skill-id(910061)) + .set("Superior Heal" ++ " (Inherited)", Skill-id(910111)) + .set("Legacy of the Strong" ++ " (Inherited)", Skill-id(910131)) + .set("Condor's Fury" ++ " (Inherited)", Skill-id(910141)) + .set("Arrows Whistle, Shadows Disperse" ++ " (Inherited)", Skill-id(910171)) + .set("Eternal Moments" ++ " (Inherited)", Skill-id(910181)) + .set("Presents from X" ++ " (Inherited)", Skill-id(910231)) + .set("Flowery☆Maneuver" ++ " (Inherited)", Skill-id(910241)) + .set("Every Rose Has Its Fangs" ++ " (Inherited)", Skill-id(910301)) + .set("Dancing in the Leaves" ++ " (Inherited)", Skill-id(910401)) + .set("Give Mummy a Hug ♡" ++ " (Inherited)", Skill-id(910451)) + .set("Bountiful Harvest" ++ " (Inherited)", Skill-id(910561)) -// Map a skill to its ID. -pub fip fun skill/skill-id(^s: skill): int - match s - Warning-Shot -> 10071 - Xceleration -> 10081 - Red-Ace -> 10091 - Focused-Mind -> 10111 - Corazon-Ardiente -> 10141 - Empresss-Pride -> 10181 - First-Place-Kiss -> 10241 - Feel-the-Burn -> 10271 - Introduction-to-Physiology -> 10321 - V-Is-for-Victory -> 10351 - Class-Rep-Speed-Bakushin -> 10411 - Clear-Heart -> 10451 - Super-Duper-Stoked -> 10521 - Luck-Be-with-Me -> 10561 - I-Can-Win-Sometimes-Right -> 10601 - Call-Me-King -> 10611 - Shooting-Star -> 100011 - The-View-from-the-Lead-Is-Mine -> 100021 - Sky-High-Teio-Step -> 100031 - Red-Shift-LP1211-M -> 100041 - Lights-of-Vaudeville -> 100051 - Triumphant-Pulse -> 100061 - Anchors-Aweigh -> 100071 - Cut-and-Drive -> 100081 - Resplendent-Red-Ace -> 100091 - Shooting-for-Victory -> 100101 - Where-Theres-a-Will-Theres-a-Way -> 100111 - You-and-Me-One-on-One -> 100121 - The-Duty-of-Dignity-Calls -> 100131 - Victoria-por-plancha -> 100141 - This-Dance-Is-for-Vittoria -> 100151 - Shadow-Break -> 100161 - Behold-Thine-Emperors-Divine-Might -> 100171 - Blazing-Pride -> 100181 - OMG-The-Final-Sprint -> 100191 - Angling-and-Scheming -> 100201 - White-Lightning-Comin-Through -> 100211 - Fairy-Tale -> 100221 - Win-QED -> 100231 - Flashy-Landing -> 100241 - Chasing-After-You -> 100251 - G00-First-FInfinity -> 100261 - Lets-Pump-Some-Iron -> 100271 - YUMMY-SPEED -> 100281 - Blue-Rose-Closer -> 100301 - U-ma2 -> 100321 - Our-Ticket-to-Win -> 100351 - Schwarzes-Schwert -> 100371 - LookatCurren -> 100381 - A-Princess-Must-Seize-Victory -> 100391 - KEEP-IT-REAL -> 100401 - Genius-x-Bakushin-Victory -> 100411 - Pure-Heart -> 100451 - SPARKLY-STARDOM -> 100461 - Pop-and-Polish -> 100481 - Nemesis -> 100501 - Super-Duper-Climax -> 100521 - I-See-Victory-in-My-Future -> 100561 - I-Never-Goof-Up -> 100581 - Moving-Past-and-Beyond -> 100591 - Just-a-Little-Farther -> 100601 - Prideful-King -> 100611 - Dazzl-n-Diver -> 110011 - Certain-Victory -> 110031 - A-Kiss-for-Courage -> 110041 - Festive-Miracle -> 110061 - Superior-Heal -> 110111 - Legacy-of-the-Strong -> 110131 - Condors-Fury -> 110141 - Arrows-Whistle-Shadows-Disperse -> 110171 - Eternal-Moments -> 110181 - Presents-from-X -> 110231 - Flowery-Maneuver -> 110241 - Every-Rose-Has-Its-Fangs -> 110301 - Dancing-in-the-Leaves -> 110401 - Give-Mummy-a-Hug -> 110451 - Bountiful-Harvest -> 110561 - Right-Handed-Lv2 -> 200011 - Right-Handed -> 200012 - Right-Handed-x -> 200013 - Left-Handed-Lv2 -> 200021 - Left-Handed -> 200022 - Left-Handed-x -> 200023 - Tokyo-Racecourse-Lv2 -> 200031 - Tokyo-Racecourse -> 200032 - Tokyo-Racecourse-x -> 200033 - Nakayama-Racecourse-Lv2 -> 200041 - Nakayama-Racecourse -> 200042 - Nakayama-Racecourse-x -> 200043 - Hanshin-Racecourse-Lv2 -> 200051 - Hanshin-Racecourse -> 200052 - Hanshin-Racecourse-x -> 200053 - Kyoto-Racecourse-Lv2 -> 200061 - Kyoto-Racecourse -> 200062 - Kyoto-Racecourse-x -> 200063 - Yodo-Invicta -> 200064 - Chukyo-Racecourse-Lv2 -> 200071 - Chukyo-Racecourse -> 200072 - Chukyo-Racecourse-x -> 200073 - Sapporo-Racecourse-Lv2 -> 200081 - Sapporo-Racecourse -> 200082 - Sapporo-Racecourse-x -> 200083 - Hakodate-Racecourse-Lv2 -> 200091 - Hakodate-Racecourse -> 200092 - Hakodate-Racecourse-x -> 200093 - Fukushima-Racecourse-Lv2 -> 200101 - Fukushima-Racecourse -> 200102 - Fukushima-Racecourse-x -> 200103 - Niigata-Racecourse-Lv2 -> 200111 - Niigata-Racecourse -> 200112 - Niigata-Racecourse-x -> 200113 - Kokura-Racecourse-Lv2 -> 200121 - Kokura-Racecourse -> 200122 - Kokura-Racecourse-x -> 200123 - Standard-Distance-Lv2 -> 200131 - Standard-Distance -> 200132 - Standard-Distance-x -> 200133 - Non-Standard-Distance-Lv2 -> 200141 - Non-Standard-Distance -> 200142 - Non-Standard-Distance-x -> 200143 - Firm-Conditions-Lv2 -> 200151 - Firm-Conditions -> 200152 - Firm-Conditions-x -> 200153 - Wet-Conditions-Lv2 -> 200161 - Wet-Conditions -> 200162 - Wet-Conditions-x -> 200163 - Spring-Runner-Lv2 -> 200171 - Spring-Runner -> 200172 - Spring-Runner-x -> 200173 - Summer-Runner-Lv2 -> 200181 - Summer-Runner -> 200182 - Summer-Runner-x -> 200183 - Fall-Runner-Lv2 -> 200191 - Fall-Runner -> 200192 - Fall-Runner-x -> 200193 - Fall-Frenzy -> 200194 - Winter-Runner-Lv2 -> 200201 - Winter-Runner -> 200202 - Winter-Runner-x -> 200203 - Sunny-Days-Lv2 -> 200211 - Sunny-Days -> 200212 - Cloudy-Days-Lv2 -> 200221 - Cloudy-Days -> 200222 - Rainy-Days-Lv2 -> 200231 - Rainy-Days -> 200232 - Rainy-Days-x -> 200233 - Snowy-Days-Lv2 -> 200241 - Snowy-Days -> 200242 - Inner-Post-Proficiency-Lv2 -> 200251 - Inner-Post-Proficiency -> 200252 - Inner-Post-Averseness -> 200253 - Outer-Post-Proficiency-Lv2 -> 200261 - Outer-Post-Proficiency -> 200262 - Outer-Post-Averseness -> 200263 - Maverick-Lv2 -> 200271 - Maverick -> 200272 - Competitive-Spirit-Lv2 -> 200281 - Competitive-Spirit -> 200282 - Wallflower -> 200283 - Target-in-Sight-Lv2 -> 200291 - Target-in-Sight -> 200292 - Long-Shot-Lv2 -> 200301 - Long-Shot -> 200302 - G1-Averseness -> 200311 - Paddock-Fright -> 200321 - Professor-of-Curvature -> 200331 - Corner-Adept -> 200332 - Corner-Adept-x -> 200333 - Corner-Connoisseur -> 200341 - Corner-Acceleration -> 200342 - Corner-Acceleration-x -> 200343 - Swinging-Maestro -> 200351 - Corner-Recovery -> 200352 - Corner-Recovery-x -> 200353 - Beeline-Burst -> 200361 - Straightaway-Adept -> 200362 - Rushing-Gale -> 200371 - Straightaway-Acceleration -> 200372 - Breath-of-Fresh-Air -> 200381 - Straightaway-Recovery -> 200382 - Ramp-Revulsion -> 200391 - Packphobia -> 200401 - Defeatist -> 200411 - Reckless -> 200421 - Concentration -> 200431 - Focus -> 200432 - Gatekept -> 200433 - Iron-Will -> 200441 - Lay-Low -> 200442 - Center-Stage -> 200451 - Prudent-Positioning -> 200452 - Its-On -> 200461 - Ramp-Up -> 200462 - Indomitable -> 200471 - Pace-Strategy -> 200472 - Unruffled -> 200481 - Calm-in-a-Crowd -> 200482 - No-Stopping-Me -> 200491 - Nimble-Navigator -> 200492 - Lane-Legerdemain -> 200501 - Go-with-the-Flow -> 200502 - In-Body-and-Mind -> 200511 - Homestretch-Haste -> 200512 - Running-Idle -> 200521 - Taking-the-Lead -> 200531 - Early-Lead -> 200532 - Escape-Artist -> 200541 - Fast-Paced -> 200542 - Unrestrained -> 200551 - Final-Push -> 200552 - Calm-and-Collected -> 200561 - Stamina-to-Spare -> 200562 - Race-Planner -> 200571 - Preferred-Position -> 200572 - Speed-Star -> 200581 - Prepared-to-Pass -> 200582 - Fast-and-Furious -> 200591 - Position-Pilfer -> 200592 - On-Your-Left -> 200601 - Slick-Surge -> 200602 - Rising-Dragon -> 200611 - Outer-Swell -> 200612 - Sleeping-Lion -> 200621 - Standing-By -> 200622 - Sturm-und-Drang -> 200631 - Masterful-Gambit -> 200632 - Encroaching-Shadow -> 200641 - Straightaway-Spurt -> 200642 - Turbo-Sprint -> 200651 - Sprinting-Gear -> 200652 - Wait-and-See -> 200662 - Blinding-Flash -> 200671 - Gap-Closer -> 200672 - Mile-Maven -> 200681 - Productive-Plan -> 200682 - Keen-Eye -> 200691 - Watchful-Eye -> 200692 - Furious-Feat -> 200701 - Updrafters -> 200702 - Trackblazer -> 200711 - Rosy-Outlook -> 200712 - Killer-Tunes -> 200721 - Up-Tempo -> 200722 - Unyielding -> 200731 - Steadfast -> 200732 - Cooldown -> 200741 - Deep-Breaths -> 200742 - Innate-Experience -> 200751 - Inside-Scoop -> 200752 - Adrenaline-Rush -> 200761 - Extra-Tank -> 200762 - Trick-Front -> 200771 - Tantalizing-Trick -> 200772 - Trick-Rear -> 200781 - Frenzied-Front-Runners -> 200791 - Frenzied-Pace-Chasers -> 200801 - Frenzied-Late-Surgers -> 200811 - Frenzied-End-Closers -> 200821 - Subdued-Front-Runners -> 200831 - Flustered-Front-Runners -> 200841 - Hesitant-Front-Runners -> 200851 - Subdued-Pace-Chasers -> 200861 - Flustered-Pace-Chasers -> 200871 - Hesitant-Pace-Chasers -> 200881 - Subdued-Late-Surgers -> 200891 - Flustered-Late-Surgers -> 200901 - Hesitant-Late-Surgers -> 200911 - Subdued-End-Closers -> 200921 - Flustered-End-Closers -> 200931 - Hesitant-End-Closers -> 200941 - Oi-Racecourse-Lv2 -> 200951 - Oi-Racecourse -> 200952 - Oi-Racecourse-x -> 200953 - Sprint-Straightaways-Lv2 -> 200961 - Sprint-Straightaways -> 200962 - Sprint-Corners-Lv2 -> 200971 - Sprint-Corners -> 200972 - Staggering-Lead -> 200981 - Huge-Lead -> 200982 - Plan-X -> 200991 - Countermeasure -> 200992 - Perfect-Prep -> 201001 - Meticulous-Measures -> 201002 - Adored-by-All -> 201011 - Intimidate -> 201012 - You-ve-Got-No-Shot -> 201021 - Stop-Right-There -> 201022 - Mile-Straightaways-Lv2 -> 201031 - Mile-Straightaways -> 201032 - Mile-Corners-Lv2 -> 201041 - Mile-Corners -> 201042 - Changing-Gears -> 201051 - Shifting-Gears -> 201052 - Step-on-the-Gas -> 201061 - Acceleration -> 201062 - Big-Sisterly -> 201071 - Unyielding-Spirit -> 201072 - Greed-for-Speed -> 201081 - Speed-Eater -> 201082 - Battle-Formation -> 201091 - Opening-Gambit -> 201092 - Medium-Straightaways-Lv2 -> 201101 - Medium-Straightaways -> 201102 - Medium-Corners-Lv2 -> 201111 - Medium-Corners -> 201112 - Clairvoyance -> 201121 - Hawkeye -> 201122 - Lightning-Step -> 201131 - Thunderbolt-Step -> 201132 - Miraculous-Step -> 201141 - Soft-Step -> 201142 - Dominator -> 201151 - Tether -> 201152 - Mystifying-Murmur -> 201161 - Murmur -> 201162 - Long-Straightaways-Lv2 -> 201171 - Long-Straightaways -> 201172 - Long-Corners-Lv2 -> 201181 - Long-Corners -> 201182 - Vanguard-Spirit -> 201191 - Keeping-the-Lead -> 201192 - VIP-Pass -> 201201 - Passing-Pro -> 201202 - Overwhelming-Pressure -> 201211 - Pressure -> 201212 - Stamina-Siphon -> 201221 - Stamina-Eater -> 201222 - Illusionist -> 201231 - Smoke-Screen -> 201232 - Front-Runner-Straightaways-Lv2 -> 201241 - Front-Runner-Straightaways -> 201242 - Front-Runner-Corners-Lv2 -> 201251 - Front-Runner-Corners -> 201252 - Sixth-Sense -> 201261 - Dodging-Danger -> 201262 - Leaders-Pride -> 201272 - Restless -> 201281 - Moxie -> 201282 - Reignition -> 201291 - Second-Wind -> 201292 - Restart -> 201302 - Pace-Chaser-Straightaways-Lv2 -> 201311 - Pace-Chaser-Straightaways -> 201312 - Pace-Chaser-Corners-Lv2 -> 201321 - Pace-Chaser-Corners -> 201322 - Technician -> 201331 - Shrewd-Step -> 201332 - Determined-Descent -> 201341 - Straight-Descent -> 201342 - Gourmand -> 201351 - Hydrate -> 201352 - Shatterproof -> 201361 - Tactical-Tweak -> 201362 - Dazzling-Disorientation -> 201371 - Disorient -> 201372 - Late-Surger-Straightaways-Lv2 -> 201381 - Late-Surger-Straightaways -> 201382 - Late-Surger-Corners-Lv2 -> 201391 - Late-Surger-Corners -> 201392 - Hard-Worker -> 201401 - Fighter -> 201402 - Fifteen-Million-CC -> 201411 - One-Million-CC -> 201412 - Relax -> 201421 - A-Small-Breather -> 201422 - The-Bigger-Picture -> 201431 - Studious -> 201432 - All-Seeing-Eyes -> 201441 - Sharp-Gaze -> 201442 - End-Closer-Straightaways-Lv2 -> 201451 - End-Closer-Straightaways -> 201452 - End-Closer-Corners-Lv2 -> 201461 - End-Closer-Corners -> 201462 - The-Coast-Is-Clear -> 201471 - I-Can-See-Right-Through-You -> 201472 - Go-Home-Specialist -> 201481 - After-School-Stroll -> 201482 - Serenity -> 201491 - Levelheaded -> 201492 - Crusader -> 201501 - Strategist -> 201502 - Petrifying-Gaze -> 201511 - Intense-Gaze -> 201512 - Front-Runner-Savvy-Lv2 -> 201521 - Front-Runner-Savvy -> 201522 - Pace-Chaser-Savvy-Lv2 -> 201531 - Pace-Chaser-Savvy -> 201532 - Late-Surger-Savvy-Lv2 -> 201541 - Late-Surger-Savvy -> 201542 - End-Closer-Savvy-Lv2 -> 201551 - End-Closer-Savvy -> 201552 - Super-Lucky-Seven -> 201561 - Lucky-Seven -> 201562 - Triple-Sevens -> 201571 - Highlander -> 201581 - Uma-Stan -> 201591 - Superstan -> 201592 - Groundwork -> 201601 - Tail-Held-High -> 201611 - Tail-Nine -> 201612 - Shake-It-Out -> 201621 - Sympathy -> 201631 - Lone-Wolf -> 201641 - Slipstream -> 201651 - Playtimes-Over -> 201661 - Trending-in-the-Charts -> 201671 - Top-Pick -> 201672 - Lead-the-Charge -> 201681 - Forward-March -> 201682 - Lie-in-Wait -> 201691 - Be-Still -> 201692 - Come-What-May -> 201701 - All-I-ve-Got -> 201702 - Nail-Art -> 201801 - Head-On -> 201902 - Familiar-Ground -> 202002 - Early-Start -> 202022 - Risky-Business -> 202032 - Runaway -> 202051 - Burning-Spirit-SPD -> 210011 - Ignited-Spirit-SPD -> 210012 - Burning-Spirit-STA -> 210021 - Ignited-Spirit-STA -> 210022 - Burning-Spirit-PWR -> 210031 - Ignited-Spirit-PWR -> 210032 - Burning-Spirit-GUTS -> 210041 - Ignited-Spirit-GUTS -> 210042 - Burning-Spirit-WIT -> 210051 - Ignited-Spirit-WIT -> 210052 - Unquenched-Thirst -> 300011 - Unchanging -> 300021 - Towards-the-Scenery-I-Seek -> 300031 - Creeping-Anxiety -> 300041 - Blatant-Fear -> 300051 - Dream-Run -> 300061 - Show-Me-What-Lies-Beyond -> 300071 - Hoiya-Have-a-Good-Run -> 300081 - As-a-Friend-and-Rival -> 300091 - Cheers-of-a-Fellow-Dreamer -> 300101 - Shooting-Star-Inherit -> 900011 - The-View-from-the-Lead-Is-Mine-Inherit -> 900021 - Sky-High-Teio-Step-Inherit -> 900031 - Red-Shift-LP1211-M-Inherit -> 900041 - Lights-of-Vaudeville-Inherit -> 900051 - Triumphant-Pulse-Inherit -> 900061 - Anchors-Aweigh-Inherit -> 900071 - Cut-and-Drive-Inherit -> 900081 - Resplendent-Red-Ace-Inherit -> 900091 - Shooting-for-Victory-Inherit -> 900101 - Where-Theres-a-Will-Theres-a-Way-Inherit -> 900111 - You-and-Me-One-on-One-Inherit -> 900121 - The-Duty-of-Dignity-Calls-Inherit -> 900131 - Victoria-por-plancha-Inherit -> 900141 - This-Dance-Is-for-Vittoria-Inherit -> 900151 - Shadow-Break-Inherit -> 900161 - Behold-Thine-Emperors-Divine-Might-Inherit -> 900171 - Blazing-Pride-Inherit -> 900181 - OMG-The-Final-Sprint-Inherit -> 900191 - Angling-and-Scheming-Inherit -> 900201 - White-Lightning-Comin-Through-Inherit -> 900211 - Fairy-Tale-Inherit -> 900221 - Win-QED-Inherit -> 900231 - Flashy-Landing-Inherit -> 900241 - Chasing-After-You-Inherit -> 900251 - G00-First-FInfinity-Inherit -> 900261 - Lets-Pump-Some-Iron-Inherit -> 900271 - YUMMY-SPEED-Inherit -> 900281 - Blue-Rose-Closer-Inherit -> 900301 - U-ma2-Inherit -> 900321 - Our-Ticket-to-Win-Inherit -> 900351 - Schwarzes-Schwert-Inherit -> 900371 - LookatCurren-Inherit -> 900381 - A-Princess-Must-Seize-Victory-Inherit -> 900391 - KEEP-IT-REAL-Inherit -> 900401 - Genius-x-Bakushin-Victory-Inherit -> 900411 - Pure-Heart-Inherit -> 900451 - SPARKLY-STARDOM-Inherit -> 900461 - Pop-and-Polish-Inherit -> 900481 - Nemesis-Inherit -> 900501 - Super-Duper-Climax-Inherit -> 900521 - I-See-Victory-in-My-Future-Inherit -> 900561 - I-Never-Goof-Up-Inherit -> 900581 - Moving-Past-and-Beyond-Inherit -> 900591 - Just-a-Little-Farther-Inherit -> 900601 - Prideful-King-Inherit -> 900611 - Dazzl-n-Diver-Inherit -> 910011 - Certain-Victory-Inherit -> 910031 - A-Kiss-for-Courage-Inherit -> 910041 - Festive-Miracle-Inherit -> 910061 - Superior-Heal-Inherit -> 910111 - Legacy-of-the-Strong-Inherit -> 910131 - Condors-Fury-Inherit -> 910141 - Arrows-Whistle-Shadows-Disperse-Inherit -> 910171 - Eternal-Moments-Inherit -> 910181 - Presents-from-X-Inherit -> 910231 - Flowery-Maneuver-Inherit -> 910241 - Every-Rose-Has-Its-Fangs-Inherit -> 910301 - Dancing-in-the-Leaves-Inherit -> 910401 - Give-Mummy-a-Hug-Inherit -> 910451 - Bountiful-Harvest-Inherit -> 910561 +// Get the skill ID that has the given exact name. +// Inherited skills have `" (Inherited)"` appended to their names. +// If no skill matches the ID, the result is an invalid ID. +pub fun from-name(name: string): skill-id + name2id.lookup(name).default(Skill-id(0)) -// Get the skill for an ID. -pub fip(1) fun skill/from-id(^id: int): maybe - match id - 10071 -> Just(Warning-Shot) - 10081 -> Just(Xceleration) - 10091 -> Just(Red-Ace) - 10111 -> Just(Focused-Mind) - 10141 -> Just(Corazon-Ardiente) - 10181 -> Just(Empresss-Pride) - 10241 -> Just(First-Place-Kiss) - 10271 -> Just(Feel-the-Burn) - 10321 -> Just(Introduction-to-Physiology) - 10351 -> Just(V-Is-for-Victory) - 10411 -> Just(Class-Rep-Speed-Bakushin) - 10451 -> Just(Clear-Heart) - 10521 -> Just(Super-Duper-Stoked) - 10561 -> Just(Luck-Be-with-Me) - 10601 -> Just(I-Can-Win-Sometimes-Right) - 10611 -> Just(Call-Me-King) - 100011 -> Just(Shooting-Star) - 100021 -> Just(The-View-from-the-Lead-Is-Mine) - 100031 -> Just(Sky-High-Teio-Step) - 100041 -> Just(Red-Shift-LP1211-M) - 100051 -> Just(Lights-of-Vaudeville) - 100061 -> Just(Triumphant-Pulse) - 100071 -> Just(Anchors-Aweigh) - 100081 -> Just(Cut-and-Drive) - 100091 -> Just(Resplendent-Red-Ace) - 100101 -> Just(Shooting-for-Victory) - 100111 -> Just(Where-Theres-a-Will-Theres-a-Way) - 100121 -> Just(You-and-Me-One-on-One) - 100131 -> Just(The-Duty-of-Dignity-Calls) - 100141 -> Just(Victoria-por-plancha) - 100151 -> Just(This-Dance-Is-for-Vittoria) - 100161 -> Just(Shadow-Break) - 100171 -> Just(Behold-Thine-Emperors-Divine-Might) - 100181 -> Just(Blazing-Pride) - 100191 -> Just(OMG-The-Final-Sprint) - 100201 -> Just(Angling-and-Scheming) - 100211 -> Just(White-Lightning-Comin-Through) - 100221 -> Just(Fairy-Tale) - 100231 -> Just(Win-QED) - 100241 -> Just(Flashy-Landing) - 100251 -> Just(Chasing-After-You) - 100261 -> Just(G00-First-FInfinity) - 100271 -> Just(Lets-Pump-Some-Iron) - 100281 -> Just(YUMMY-SPEED) - 100301 -> Just(Blue-Rose-Closer) - 100321 -> Just(U-ma2) - 100351 -> Just(Our-Ticket-to-Win) - 100371 -> Just(Schwarzes-Schwert) - 100381 -> Just(LookatCurren) - 100391 -> Just(A-Princess-Must-Seize-Victory) - 100401 -> Just(KEEP-IT-REAL) - 100411 -> Just(Genius-x-Bakushin-Victory) - 100451 -> Just(Pure-Heart) - 100461 -> Just(SPARKLY-STARDOM) - 100481 -> Just(Pop-and-Polish) - 100501 -> Just(Nemesis) - 100521 -> Just(Super-Duper-Climax) - 100561 -> Just(I-See-Victory-in-My-Future) - 100581 -> Just(I-Never-Goof-Up) - 100591 -> Just(Moving-Past-and-Beyond) - 100601 -> Just(Just-a-Little-Farther) - 100611 -> Just(Prideful-King) - 110011 -> Just(Dazzl-n-Diver) - 110031 -> Just(Certain-Victory) - 110041 -> Just(A-Kiss-for-Courage) - 110061 -> Just(Festive-Miracle) - 110111 -> Just(Superior-Heal) - 110131 -> Just(Legacy-of-the-Strong) - 110141 -> Just(Condors-Fury) - 110171 -> Just(Arrows-Whistle-Shadows-Disperse) - 110181 -> Just(Eternal-Moments) - 110231 -> Just(Presents-from-X) - 110241 -> Just(Flowery-Maneuver) - 110301 -> Just(Every-Rose-Has-Its-Fangs) - 110401 -> Just(Dancing-in-the-Leaves) - 110451 -> Just(Give-Mummy-a-Hug) - 110561 -> Just(Bountiful-Harvest) - 200011 -> Just(Right-Handed-Lv2) - 200012 -> Just(Right-Handed) - 200013 -> Just(Right-Handed-x) - 200021 -> Just(Left-Handed-Lv2) - 200022 -> Just(Left-Handed) - 200023 -> Just(Left-Handed-x) - 200031 -> Just(Tokyo-Racecourse-Lv2) - 200032 -> Just(Tokyo-Racecourse) - 200033 -> Just(Tokyo-Racecourse-x) - 200041 -> Just(Nakayama-Racecourse-Lv2) - 200042 -> Just(Nakayama-Racecourse) - 200043 -> Just(Nakayama-Racecourse-x) - 200051 -> Just(Hanshin-Racecourse-Lv2) - 200052 -> Just(Hanshin-Racecourse) - 200053 -> Just(Hanshin-Racecourse-x) - 200061 -> Just(Kyoto-Racecourse-Lv2) - 200062 -> Just(Kyoto-Racecourse) - 200063 -> Just(Kyoto-Racecourse-x) - 200064 -> Just(Yodo-Invicta) - 200071 -> Just(Chukyo-Racecourse-Lv2) - 200072 -> Just(Chukyo-Racecourse) - 200073 -> Just(Chukyo-Racecourse-x) - 200081 -> Just(Sapporo-Racecourse-Lv2) - 200082 -> Just(Sapporo-Racecourse) - 200083 -> Just(Sapporo-Racecourse-x) - 200091 -> Just(Hakodate-Racecourse-Lv2) - 200092 -> Just(Hakodate-Racecourse) - 200093 -> Just(Hakodate-Racecourse-x) - 200101 -> Just(Fukushima-Racecourse-Lv2) - 200102 -> Just(Fukushima-Racecourse) - 200103 -> Just(Fukushima-Racecourse-x) - 200111 -> Just(Niigata-Racecourse-Lv2) - 200112 -> Just(Niigata-Racecourse) - 200113 -> Just(Niigata-Racecourse-x) - 200121 -> Just(Kokura-Racecourse-Lv2) - 200122 -> Just(Kokura-Racecourse) - 200123 -> Just(Kokura-Racecourse-x) - 200131 -> Just(Standard-Distance-Lv2) - 200132 -> Just(Standard-Distance) - 200133 -> Just(Standard-Distance-x) - 200141 -> Just(Non-Standard-Distance-Lv2) - 200142 -> Just(Non-Standard-Distance) - 200143 -> Just(Non-Standard-Distance-x) - 200151 -> Just(Firm-Conditions-Lv2) - 200152 -> Just(Firm-Conditions) - 200153 -> Just(Firm-Conditions-x) - 200161 -> Just(Wet-Conditions-Lv2) - 200162 -> Just(Wet-Conditions) - 200163 -> Just(Wet-Conditions-x) - 200171 -> Just(Spring-Runner-Lv2) - 200172 -> Just(Spring-Runner) - 200173 -> Just(Spring-Runner-x) - 200181 -> Just(Summer-Runner-Lv2) - 200182 -> Just(Summer-Runner) - 200183 -> Just(Summer-Runner-x) - 200191 -> Just(Fall-Runner-Lv2) - 200192 -> Just(Fall-Runner) - 200193 -> Just(Fall-Runner-x) - 200194 -> Just(Fall-Frenzy) - 200201 -> Just(Winter-Runner-Lv2) - 200202 -> Just(Winter-Runner) - 200203 -> Just(Winter-Runner-x) - 200211 -> Just(Sunny-Days-Lv2) - 200212 -> Just(Sunny-Days) - 200221 -> Just(Cloudy-Days-Lv2) - 200222 -> Just(Cloudy-Days) - 200231 -> Just(Rainy-Days-Lv2) - 200232 -> Just(Rainy-Days) - 200233 -> Just(Rainy-Days-x) - 200241 -> Just(Snowy-Days-Lv2) - 200242 -> Just(Snowy-Days) - 200251 -> Just(Inner-Post-Proficiency-Lv2) - 200252 -> Just(Inner-Post-Proficiency) - 200253 -> Just(Inner-Post-Averseness) - 200261 -> Just(Outer-Post-Proficiency-Lv2) - 200262 -> Just(Outer-Post-Proficiency) - 200263 -> Just(Outer-Post-Averseness) - 200271 -> Just(Maverick-Lv2) - 200272 -> Just(Maverick) - 200281 -> Just(Competitive-Spirit-Lv2) - 200282 -> Just(Competitive-Spirit) - 200283 -> Just(Wallflower) - 200291 -> Just(Target-in-Sight-Lv2) - 200292 -> Just(Target-in-Sight) - 200301 -> Just(Long-Shot-Lv2) - 200302 -> Just(Long-Shot) - 200311 -> Just(G1-Averseness) - 200321 -> Just(Paddock-Fright) - 200331 -> Just(Professor-of-Curvature) - 200332 -> Just(Corner-Adept) - 200333 -> Just(Corner-Adept-x) - 200341 -> Just(Corner-Connoisseur) - 200342 -> Just(Corner-Acceleration) - 200343 -> Just(Corner-Acceleration-x) - 200351 -> Just(Swinging-Maestro) - 200352 -> Just(Corner-Recovery) - 200353 -> Just(Corner-Recovery-x) - 200361 -> Just(Beeline-Burst) - 200362 -> Just(Straightaway-Adept) - 200371 -> Just(Rushing-Gale) - 200372 -> Just(Straightaway-Acceleration) - 200381 -> Just(Breath-of-Fresh-Air) - 200382 -> Just(Straightaway-Recovery) - 200391 -> Just(Ramp-Revulsion) - 200401 -> Just(Packphobia) - 200411 -> Just(Defeatist) - 200421 -> Just(Reckless) - 200431 -> Just(Concentration) - 200432 -> Just(Focus) - 200433 -> Just(Gatekept) - 200441 -> Just(Iron-Will) - 200442 -> Just(Lay-Low) - 200451 -> Just(Center-Stage) - 200452 -> Just(Prudent-Positioning) - 200461 -> Just(Its-On) - 200462 -> Just(Ramp-Up) - 200471 -> Just(Indomitable) - 200472 -> Just(Pace-Strategy) - 200481 -> Just(Unruffled) - 200482 -> Just(Calm-in-a-Crowd) - 200491 -> Just(No-Stopping-Me) - 200492 -> Just(Nimble-Navigator) - 200501 -> Just(Lane-Legerdemain) - 200502 -> Just(Go-with-the-Flow) - 200511 -> Just(In-Body-and-Mind) - 200512 -> Just(Homestretch-Haste) - 200521 -> Just(Running-Idle) - 200531 -> Just(Taking-the-Lead) - 200532 -> Just(Early-Lead) - 200541 -> Just(Escape-Artist) - 200542 -> Just(Fast-Paced) - 200551 -> Just(Unrestrained) - 200552 -> Just(Final-Push) - 200561 -> Just(Calm-and-Collected) - 200562 -> Just(Stamina-to-Spare) - 200571 -> Just(Race-Planner) - 200572 -> Just(Preferred-Position) - 200581 -> Just(Speed-Star) - 200582 -> Just(Prepared-to-Pass) - 200591 -> Just(Fast-and-Furious) - 200592 -> Just(Position-Pilfer) - 200601 -> Just(On-Your-Left) - 200602 -> Just(Slick-Surge) - 200611 -> Just(Rising-Dragon) - 200612 -> Just(Outer-Swell) - 200621 -> Just(Sleeping-Lion) - 200622 -> Just(Standing-By) - 200631 -> Just(Sturm-und-Drang) - 200632 -> Just(Masterful-Gambit) - 200641 -> Just(Encroaching-Shadow) - 200642 -> Just(Straightaway-Spurt) - 200651 -> Just(Turbo-Sprint) - 200652 -> Just(Sprinting-Gear) - 200662 -> Just(Wait-and-See) - 200671 -> Just(Blinding-Flash) - 200672 -> Just(Gap-Closer) - 200681 -> Just(Mile-Maven) - 200682 -> Just(Productive-Plan) - 200691 -> Just(Keen-Eye) - 200692 -> Just(Watchful-Eye) - 200701 -> Just(Furious-Feat) - 200702 -> Just(Updrafters) - 200711 -> Just(Trackblazer) - 200712 -> Just(Rosy-Outlook) - 200721 -> Just(Killer-Tunes) - 200722 -> Just(Up-Tempo) - 200731 -> Just(Unyielding) - 200732 -> Just(Steadfast) - 200741 -> Just(Cooldown) - 200742 -> Just(Deep-Breaths) - 200751 -> Just(Innate-Experience) - 200752 -> Just(Inside-Scoop) - 200761 -> Just(Adrenaline-Rush) - 200762 -> Just(Extra-Tank) - 200771 -> Just(Trick-Front) - 200772 -> Just(Tantalizing-Trick) - 200781 -> Just(Trick-Rear) - 200791 -> Just(Frenzied-Front-Runners) - 200801 -> Just(Frenzied-Pace-Chasers) - 200811 -> Just(Frenzied-Late-Surgers) - 200821 -> Just(Frenzied-End-Closers) - 200831 -> Just(Subdued-Front-Runners) - 200841 -> Just(Flustered-Front-Runners) - 200851 -> Just(Hesitant-Front-Runners) - 200861 -> Just(Subdued-Pace-Chasers) - 200871 -> Just(Flustered-Pace-Chasers) - 200881 -> Just(Hesitant-Pace-Chasers) - 200891 -> Just(Subdued-Late-Surgers) - 200901 -> Just(Flustered-Late-Surgers) - 200911 -> Just(Hesitant-Late-Surgers) - 200921 -> Just(Subdued-End-Closers) - 200931 -> Just(Flustered-End-Closers) - 200941 -> Just(Hesitant-End-Closers) - 200951 -> Just(Oi-Racecourse-Lv2) - 200952 -> Just(Oi-Racecourse) - 200953 -> Just(Oi-Racecourse-x) - 200961 -> Just(Sprint-Straightaways-Lv2) - 200962 -> Just(Sprint-Straightaways) - 200971 -> Just(Sprint-Corners-Lv2) - 200972 -> Just(Sprint-Corners) - 200981 -> Just(Staggering-Lead) - 200982 -> Just(Huge-Lead) - 200991 -> Just(Plan-X) - 200992 -> Just(Countermeasure) - 201001 -> Just(Perfect-Prep) - 201002 -> Just(Meticulous-Measures) - 201011 -> Just(Adored-by-All) - 201012 -> Just(Intimidate) - 201021 -> Just(You-ve-Got-No-Shot) - 201022 -> Just(Stop-Right-There) - 201031 -> Just(Mile-Straightaways-Lv2) - 201032 -> Just(Mile-Straightaways) - 201041 -> Just(Mile-Corners-Lv2) - 201042 -> Just(Mile-Corners) - 201051 -> Just(Changing-Gears) - 201052 -> Just(Shifting-Gears) - 201061 -> Just(Step-on-the-Gas) - 201062 -> Just(Acceleration) - 201071 -> Just(Big-Sisterly) - 201072 -> Just(Unyielding-Spirit) - 201081 -> Just(Greed-for-Speed) - 201082 -> Just(Speed-Eater) - 201091 -> Just(Battle-Formation) - 201092 -> Just(Opening-Gambit) - 201101 -> Just(Medium-Straightaways-Lv2) - 201102 -> Just(Medium-Straightaways) - 201111 -> Just(Medium-Corners-Lv2) - 201112 -> Just(Medium-Corners) - 201121 -> Just(Clairvoyance) - 201122 -> Just(Hawkeye) - 201131 -> Just(Lightning-Step) - 201132 -> Just(Thunderbolt-Step) - 201141 -> Just(Miraculous-Step) - 201142 -> Just(Soft-Step) - 201151 -> Just(Dominator) - 201152 -> Just(Tether) - 201161 -> Just(Mystifying-Murmur) - 201162 -> Just(Murmur) - 201171 -> Just(Long-Straightaways-Lv2) - 201172 -> Just(Long-Straightaways) - 201181 -> Just(Long-Corners-Lv2) - 201182 -> Just(Long-Corners) - 201191 -> Just(Vanguard-Spirit) - 201192 -> Just(Keeping-the-Lead) - 201201 -> Just(VIP-Pass) - 201202 -> Just(Passing-Pro) - 201211 -> Just(Overwhelming-Pressure) - 201212 -> Just(Pressure) - 201221 -> Just(Stamina-Siphon) - 201222 -> Just(Stamina-Eater) - 201231 -> Just(Illusionist) - 201232 -> Just(Smoke-Screen) - 201241 -> Just(Front-Runner-Straightaways-Lv2) - 201242 -> Just(Front-Runner-Straightaways) - 201251 -> Just(Front-Runner-Corners-Lv2) - 201252 -> Just(Front-Runner-Corners) - 201261 -> Just(Sixth-Sense) - 201262 -> Just(Dodging-Danger) - 201272 -> Just(Leaders-Pride) - 201281 -> Just(Restless) - 201282 -> Just(Moxie) - 201291 -> Just(Reignition) - 201292 -> Just(Second-Wind) - 201302 -> Just(Restart) - 201311 -> Just(Pace-Chaser-Straightaways-Lv2) - 201312 -> Just(Pace-Chaser-Straightaways) - 201321 -> Just(Pace-Chaser-Corners-Lv2) - 201322 -> Just(Pace-Chaser-Corners) - 201331 -> Just(Technician) - 201332 -> Just(Shrewd-Step) - 201341 -> Just(Determined-Descent) - 201342 -> Just(Straight-Descent) - 201351 -> Just(Gourmand) - 201352 -> Just(Hydrate) - 201361 -> Just(Shatterproof) - 201362 -> Just(Tactical-Tweak) - 201371 -> Just(Dazzling-Disorientation) - 201372 -> Just(Disorient) - 201381 -> Just(Late-Surger-Straightaways-Lv2) - 201382 -> Just(Late-Surger-Straightaways) - 201391 -> Just(Late-Surger-Corners-Lv2) - 201392 -> Just(Late-Surger-Corners) - 201401 -> Just(Hard-Worker) - 201402 -> Just(Fighter) - 201411 -> Just(Fifteen-Million-CC) - 201412 -> Just(One-Million-CC) - 201421 -> Just(Relax) - 201422 -> Just(A-Small-Breather) - 201431 -> Just(The-Bigger-Picture) - 201432 -> Just(Studious) - 201441 -> Just(All-Seeing-Eyes) - 201442 -> Just(Sharp-Gaze) - 201451 -> Just(End-Closer-Straightaways-Lv2) - 201452 -> Just(End-Closer-Straightaways) - 201461 -> Just(End-Closer-Corners-Lv2) - 201462 -> Just(End-Closer-Corners) - 201471 -> Just(The-Coast-Is-Clear) - 201472 -> Just(I-Can-See-Right-Through-You) - 201481 -> Just(Go-Home-Specialist) - 201482 -> Just(After-School-Stroll) - 201491 -> Just(Serenity) - 201492 -> Just(Levelheaded) - 201501 -> Just(Crusader) - 201502 -> Just(Strategist) - 201511 -> Just(Petrifying-Gaze) - 201512 -> Just(Intense-Gaze) - 201521 -> Just(Front-Runner-Savvy-Lv2) - 201522 -> Just(Front-Runner-Savvy) - 201531 -> Just(Pace-Chaser-Savvy-Lv2) - 201532 -> Just(Pace-Chaser-Savvy) - 201541 -> Just(Late-Surger-Savvy-Lv2) - 201542 -> Just(Late-Surger-Savvy) - 201551 -> Just(End-Closer-Savvy-Lv2) - 201552 -> Just(End-Closer-Savvy) - 201561 -> Just(Super-Lucky-Seven) - 201562 -> Just(Lucky-Seven) - 201571 -> Just(Triple-Sevens) - 201581 -> Just(Highlander) - 201591 -> Just(Uma-Stan) - 201592 -> Just(Superstan) - 201601 -> Just(Groundwork) - 201611 -> Just(Tail-Held-High) - 201612 -> Just(Tail-Nine) - 201621 -> Just(Shake-It-Out) - 201631 -> Just(Sympathy) - 201641 -> Just(Lone-Wolf) - 201651 -> Just(Slipstream) - 201661 -> Just(Playtimes-Over) - 201671 -> Just(Trending-in-the-Charts) - 201672 -> Just(Top-Pick) - 201681 -> Just(Lead-the-Charge) - 201682 -> Just(Forward-March) - 201691 -> Just(Lie-in-Wait) - 201692 -> Just(Be-Still) - 201701 -> Just(Come-What-May) - 201702 -> Just(All-I-ve-Got) - 201801 -> Just(Nail-Art) - 201902 -> Just(Head-On) - 202002 -> Just(Familiar-Ground) - 202022 -> Just(Early-Start) - 202032 -> Just(Risky-Business) - 202051 -> Just(Runaway) - 210011 -> Just(Burning-Spirit-SPD) - 210012 -> Just(Ignited-Spirit-SPD) - 210021 -> Just(Burning-Spirit-STA) - 210022 -> Just(Ignited-Spirit-STA) - 210031 -> Just(Burning-Spirit-PWR) - 210032 -> Just(Ignited-Spirit-PWR) - 210041 -> Just(Burning-Spirit-GUTS) - 210042 -> Just(Ignited-Spirit-GUTS) - 210051 -> Just(Burning-Spirit-WIT) - 210052 -> Just(Ignited-Spirit-WIT) - 300011 -> Just(Unquenched-Thirst) - 300021 -> Just(Unchanging) - 300031 -> Just(Towards-the-Scenery-I-Seek) - 300041 -> Just(Creeping-Anxiety) - 300051 -> Just(Blatant-Fear) - 300061 -> Just(Dream-Run) - 300071 -> Just(Show-Me-What-Lies-Beyond) - 300081 -> Just(Hoiya-Have-a-Good-Run) - 300091 -> Just(As-a-Friend-and-Rival) - 300101 -> Just(Cheers-of-a-Fellow-Dreamer) - 900011 -> Just(Shooting-Star-Inherit) - 900021 -> Just(The-View-from-the-Lead-Is-Mine-Inherit) - 900031 -> Just(Sky-High-Teio-Step-Inherit) - 900041 -> Just(Red-Shift-LP1211-M-Inherit) - 900051 -> Just(Lights-of-Vaudeville-Inherit) - 900061 -> Just(Triumphant-Pulse-Inherit) - 900071 -> Just(Anchors-Aweigh-Inherit) - 900081 -> Just(Cut-and-Drive-Inherit) - 900091 -> Just(Resplendent-Red-Ace-Inherit) - 900101 -> Just(Shooting-for-Victory-Inherit) - 900111 -> Just(Where-Theres-a-Will-Theres-a-Way-Inherit) - 900121 -> Just(You-and-Me-One-on-One-Inherit) - 900131 -> Just(The-Duty-of-Dignity-Calls-Inherit) - 900141 -> Just(Victoria-por-plancha-Inherit) - 900151 -> Just(This-Dance-Is-for-Vittoria-Inherit) - 900161 -> Just(Shadow-Break-Inherit) - 900171 -> Just(Behold-Thine-Emperors-Divine-Might-Inherit) - 900181 -> Just(Blazing-Pride-Inherit) - 900191 -> Just(OMG-The-Final-Sprint-Inherit) - 900201 -> Just(Angling-and-Scheming-Inherit) - 900211 -> Just(White-Lightning-Comin-Through-Inherit) - 900221 -> Just(Fairy-Tale-Inherit) - 900231 -> Just(Win-QED-Inherit) - 900241 -> Just(Flashy-Landing-Inherit) - 900251 -> Just(Chasing-After-You-Inherit) - 900261 -> Just(G00-First-FInfinity-Inherit) - 900271 -> Just(Lets-Pump-Some-Iron-Inherit) - 900281 -> Just(YUMMY-SPEED-Inherit) - 900301 -> Just(Blue-Rose-Closer-Inherit) - 900321 -> Just(U-ma2-Inherit) - 900351 -> Just(Our-Ticket-to-Win-Inherit) - 900371 -> Just(Schwarzes-Schwert-Inherit) - 900381 -> Just(LookatCurren-Inherit) - 900391 -> Just(A-Princess-Must-Seize-Victory-Inherit) - 900401 -> Just(KEEP-IT-REAL-Inherit) - 900411 -> Just(Genius-x-Bakushin-Victory-Inherit) - 900451 -> Just(Pure-Heart-Inherit) - 900461 -> Just(SPARKLY-STARDOM-Inherit) - 900481 -> Just(Pop-and-Polish-Inherit) - 900501 -> Just(Nemesis-Inherit) - 900521 -> Just(Super-Duper-Climax-Inherit) - 900561 -> Just(I-See-Victory-in-My-Future-Inherit) - 900581 -> Just(I-Never-Goof-Up-Inherit) - 900591 -> Just(Moving-Past-and-Beyond-Inherit) - 900601 -> Just(Just-a-Little-Farther-Inherit) - 900611 -> Just(Prideful-King-Inherit) - 910011 -> Just(Dazzl-n-Diver-Inherit) - 910031 -> Just(Certain-Victory-Inherit) - 910041 -> Just(A-Kiss-for-Courage-Inherit) - 910061 -> Just(Festive-Miracle-Inherit) - 910111 -> Just(Superior-Heal-Inherit) - 910131 -> Just(Legacy-of-the-Strong-Inherit) - 910141 -> Just(Condors-Fury-Inherit) - 910171 -> Just(Arrows-Whistle-Shadows-Disperse-Inherit) - 910181 -> Just(Eternal-Moments-Inherit) - 910231 -> Just(Presents-from-X-Inherit) - 910241 -> Just(Flowery-Maneuver-Inherit) - 910301 -> Just(Every-Rose-Has-Its-Fangs-Inherit) - 910401 -> Just(Dancing-in-the-Leaves-Inherit) - 910451 -> Just(Give-Mummy-a-Hug-Inherit) - 910561 -> Just(Bountiful-Harvest-Inherit) +// Get the name for a skill. +// Inherited skills have `" (Inherited)"` appended to their names. +// If no skill matches the ID, the result is the numeric ID. +pub fun show(s: skill-id): string + match s.game-id + 10071 -> "Warning Shot!" + 10081 -> "Xceleration" + 10091 -> "Red Ace" + 10111 -> "Focused Mind" + 10141 -> "Corazón ☆ Ardiente" + 10181 -> "Empress's Pride" + 10241 -> "1st Place Kiss☆" + 10271 -> "Feel the Burn!" + 10321 -> "Introduction to Physiology" + 10351 -> "V Is for Victory!" + 10411 -> "Class Rep + Speed = Bakushin" + 10451 -> "Clear Heart" + 10521 -> "Super-Duper Stoked" + 10561 -> "Luck Be with Me!" + 10601 -> "I Can Win Sometimes, Right?" + 10611 -> "Call Me King" + 100011 -> "Shooting Star" + 100021 -> "The View from the Lead Is Mine!" + 100031 -> "Sky-High Teio Step" + 100041 -> "Red Shift/LP1211-M" + 100051 -> "Lights of Vaudeville" + 100061 -> "Triumphant Pulse" + 100071 -> "Anchors Aweigh!" + 100081 -> "Cut and Drive!" + 100091 -> "Resplendent Red Ace" + 100101 -> "Shooting for Victory!" + 100111 -> "Where There's a Will, There's a Way" + 100121 -> "You and Me! One-on-One!" + 100131 -> "The Duty of Dignity Calls" + 100141 -> "Victoria por plancha ☆" + 100151 -> "This Dance Is for Vittoria!" + 100161 -> "Shadow Break" + 100171 -> "Behold Thine Emperor's Divine Might" + 100181 -> "Blazing Pride" + 100191 -> "OMG! (゚∀゚) The Final Sprint! ☆" + 100201 -> "Angling and Scheming" + 100211 -> "White Lightning Comin' Through!" + 100221 -> "Fairy Tale" + 100231 -> "∴win Q.E.D." + 100241 -> "Flashy☆Landing" + 100251 -> "Chasing After You" + 100261 -> "G00 1st. F∞;" + 100271 -> "Let's Pump Some Iron!" + 100281 -> "YUMMY☆SPEED!" + 100301 -> "Blue Rose Closer" + 100321 -> "U=ma2" + 100351 -> "Our Ticket to Win!" + 100371 -> "Schwarzes Schwert" + 100381 -> "#LookatCurren" + 100391 -> "A Princess Must Seize Victory!" + 100401 -> "KEEP IT REAL." + 100411 -> "Genius x Bakushin = Victory" + 100451 -> "Pure Heart" + 100461 -> "SPARKLY☆STARDOM" + 100481 -> "Pop & Polish" + 100501 -> "Nemesis" + 100521 -> "Super-Duper Climax" + 100561 -> "I See Victory in My Future!" + 100581 -> "I Never Goof Up!" + 100591 -> "Moving Past, and Beyond" + 100601 -> "Just a Little Farther!" + 100611 -> "Prideful King" + 110011 -> "Dazzl'n ♪ Diver" + 110031 -> "Certain Victory" + 110041 -> "A Kiss for Courage" + 110061 -> "Festive Miracle" + 110111 -> "Superior Heal" + 110131 -> "Legacy of the Strong" + 110141 -> "Condor's Fury" + 110171 -> "Arrows Whistle, Shadows Disperse" + 110181 -> "Eternal Moments" + 110231 -> "Presents from X" + 110241 -> "Flowery☆Maneuver" + 110301 -> "Every Rose Has Its Fangs" + 110401 -> "Dancing in the Leaves" + 110451 -> "Give Mummy a Hug ♡" + 110561 -> "Bountiful Harvest" + 200011 -> "Right-Handed ◎" + 200012 -> "Right-Handed ○" + 200013 -> "Right-Handed ×" + 200021 -> "Left-Handed ◎" + 200022 -> "Left-Handed ○" + 200023 -> "Left-Handed ×" + 200031 -> "Tokyo Racecourse ◎" + 200032 -> "Tokyo Racecourse ○" + 200033 -> "Tokyo Racecourse ×" + 200041 -> "Nakayama Racecourse ◎" + 200042 -> "Nakayama Racecourse ○" + 200043 -> "Nakayama Racecourse ×" + 200051 -> "Hanshin Racecourse ◎" + 200052 -> "Hanshin Racecourse ○" + 200053 -> "Hanshin Racecourse ×" + 200061 -> "Kyoto Racecourse ◎" + 200062 -> "Kyoto Racecourse ○" + 200063 -> "Kyoto Racecourse ×" + 200064 -> "Yodo Invicta" + 200071 -> "Chukyo Racecourse ◎" + 200072 -> "Chukyo Racecourse ○" + 200073 -> "Chukyo Racecourse ×" + 200081 -> "Sapporo Racecourse ◎" + 200082 -> "Sapporo Racecourse ○" + 200083 -> "Sapporo Racecourse ×" + 200091 -> "Hakodate Racecourse ◎" + 200092 -> "Hakodate Racecourse ○" + 200093 -> "Hakodate Racecourse ×" + 200101 -> "Fukushima Racecourse ◎" + 200102 -> "Fukushima Racecourse ○" + 200103 -> "Fukushima Racecourse ×" + 200111 -> "Niigata Racecourse ◎" + 200112 -> "Niigata Racecourse ○" + 200113 -> "Niigata Racecourse ×" + 200121 -> "Kokura Racecourse ◎" + 200122 -> "Kokura Racecourse ○" + 200123 -> "Kokura Racecourse ×" + 200131 -> "Standard Distance ◎" + 200132 -> "Standard Distance ○" + 200133 -> "Standard Distance ×" + 200141 -> "Non-Standard Distance ◎" + 200142 -> "Non-Standard Distance ○" + 200143 -> "Non-Standard Distance ×" + 200151 -> "Firm Conditions ◎" + 200152 -> "Firm Conditions ○" + 200153 -> "Firm Conditions ×" + 200161 -> "Wet Conditions ◎" + 200162 -> "Wet Conditions ○" + 200163 -> "Wet Conditions ×" + 200171 -> "Spring Runner ◎" + 200172 -> "Spring Runner ○" + 200173 -> "Spring Runner ×" + 200181 -> "Summer Runner ◎" + 200182 -> "Summer Runner ○" + 200183 -> "Summer Runner ×" + 200191 -> "Fall Runner ◎" + 200192 -> "Fall Runner ○" + 200193 -> "Fall Runner ×" + 200194 -> "Fall Frenzy" + 200201 -> "Winter Runner ◎" + 200202 -> "Winter Runner ○" + 200203 -> "Winter Runner ×" + 200211 -> "Sunny Days ◎" + 200212 -> "Sunny Days ○" + 200221 -> "Cloudy Days ◎" + 200222 -> "Cloudy Days ○" + 200231 -> "Rainy Days ◎" + 200232 -> "Rainy Days ○" + 200233 -> "Rainy Days ×" + 200241 -> "Snowy Days ◎" + 200242 -> "Snowy Days ○" + 200251 -> "Inner Post Proficiency ◎" + 200252 -> "Inner Post Proficiency ○" + 200253 -> "Inner Post Averseness" + 200261 -> "Outer Post Proficiency ◎" + 200262 -> "Outer Post Proficiency ○" + 200263 -> "Outer Post Averseness" + 200271 -> "Maverick ◎" + 200272 -> "Maverick ○" + 200281 -> "Competitive Spirit ◎" + 200282 -> "Competitive Spirit ○" + 200283 -> "Wallflower" + 200291 -> "Target in Sight ◎" + 200292 -> "Target in Sight ○" + 200301 -> "Long Shot ◎" + 200302 -> "Long Shot ○" + 200311 -> "G1 Averseness" + 200321 -> "Paddock Fright" + 200331 -> "Professor of Curvature" + 200332 -> "Corner Adept ○" + 200333 -> "Corner Adept ×" + 200341 -> "Corner Connoisseur" + 200342 -> "Corner Acceleration ○" + 200343 -> "Corner Acceleration ×" + 200351 -> "Swinging Maestro" + 200352 -> "Corner Recovery ○" + 200353 -> "Corner Recovery ×" + 200361 -> "Beeline Burst" + 200362 -> "Straightaway Adept" + 200371 -> "Rushing Gale!" + 200372 -> "Straightaway Acceleration" + 200381 -> "Breath of Fresh Air" + 200382 -> "Straightaway Recovery" + 200391 -> "Ramp Revulsion" + 200401 -> "Packphobia" + 200411 -> "Defeatist" + 200421 -> "Reckless" + 200431 -> "Concentration" + 200432 -> "Focus" + 200433 -> "Gatekept" + 200441 -> "Iron Will" + 200442 -> "Lay Low" + 200451 -> "Center Stage" + 200452 -> "Prudent Positioning" + 200461 -> "It's On!" + 200462 -> "Ramp Up" + 200471 -> "Indomitable" + 200472 -> "Pace Strategy" + 200481 -> "Unruffled" + 200482 -> "Calm in a Crowd" + 200491 -> "No Stopping Me!" + 200492 -> "Nimble Navigator" + 200501 -> "Lane Legerdemain" + 200502 -> "Go with the Flow" + 200511 -> "In Body and Mind" + 200512 -> "Homestretch Haste" + 200521 -> "Running Idle" + 200531 -> "Taking the Lead" + 200532 -> "Early Lead" + 200541 -> "Escape Artist" + 200542 -> "Fast-Paced" + 200551 -> "Unrestrained" + 200552 -> "Final Push" + 200561 -> "Calm and Collected" + 200562 -> "Stamina to Spare" + 200571 -> "Race Planner" + 200572 -> "Preferred Position" + 200581 -> "Speed Star" + 200582 -> "Prepared to Pass" + 200591 -> "Fast & Furious" + 200592 -> "Position Pilfer" + 200601 -> "On Your Left!" + 200602 -> "Slick Surge" + 200611 -> "Rising Dragon" + 200612 -> "Outer Swell" + 200621 -> "Sleeping Lion" + 200622 -> "Standing By" + 200631 -> "Sturm und Drang" + 200632 -> "Masterful Gambit" + 200641 -> "Encroaching Shadow" + 200642 -> "Straightaway Spurt" + 200651 -> "Turbo Sprint" + 200652 -> "Sprinting Gear" + 200662 -> "Wait-and-See" + 200671 -> "Blinding Flash" + 200672 -> "Gap Closer" + 200681 -> "Mile Maven" + 200682 -> "Productive Plan" + 200691 -> "Keen Eye" + 200692 -> "Watchful Eye" + 200701 -> "Furious Feat" + 200702 -> "Updrafters" + 200711 -> "Trackblazer" + 200712 -> "Rosy Outlook" + 200721 -> "Killer Tunes" + 200722 -> "Up-Tempo" + 200731 -> "Unyielding" + 200732 -> "Steadfast" + 200741 -> "Cooldown" + 200742 -> "Deep Breaths" + 200751 -> "Innate Experience" + 200752 -> "Inside Scoop" + 200761 -> "Adrenaline Rush" + 200762 -> "Extra Tank" + 200771 -> "Trick (Front)" + 200772 -> "Tantalizing Trick" + 200781 -> "Trick (Rear)" + 200791 -> "Frenzied Front Runners" + 200801 -> "Frenzied Pace Chasers" + 200811 -> "Frenzied Late Surgers" + 200821 -> "Frenzied End Closers" + 200831 -> "Subdued Front Runners" + 200841 -> "Flustered Front Runners" + 200851 -> "Hesitant Front Runners" + 200861 -> "Subdued Pace Chasers" + 200871 -> "Flustered Pace Chasers" + 200881 -> "Hesitant Pace Chasers" + 200891 -> "Subdued Late Surgers" + 200901 -> "Flustered Late Surgers" + 200911 -> "Hesitant Late Surgers" + 200921 -> "Subdued End Closers" + 200931 -> "Flustered End Closers" + 200941 -> "Hesitant End Closers" + 200951 -> "Oi Racecourse ◎" + 200952 -> "Oi Racecourse ○" + 200953 -> "Oi Racecourse ×" + 200961 -> "Sprint Straightaways ◎" + 200962 -> "Sprint Straightaways ○" + 200971 -> "Sprint Corners ◎" + 200972 -> "Sprint Corners ○" + 200981 -> "Staggering Lead" + 200982 -> "Huge Lead" + 200991 -> "Plan X" + 200992 -> "Countermeasure" + 201001 -> "Perfect Prep!" + 201002 -> "Meticulous Measures" + 201011 -> "Adored by All" + 201012 -> "Intimidate" + 201021 -> "You've Got No Shot" + 201022 -> "Stop Right There!" + 201031 -> "Mile Straightaways ◎" + 201032 -> "Mile Straightaways ○" + 201041 -> "Mile Corners ◎" + 201042 -> "Mile Corners ○" + 201051 -> "Changing Gears" + 201052 -> "Shifting Gears" + 201061 -> "Step on the Gas!" + 201062 -> "Acceleration" + 201071 -> "Big-Sisterly" + 201072 -> "Unyielding Spirit" + 201081 -> "Greed for Speed" + 201082 -> "Speed Eater" + 201091 -> "Battle Formation" + 201092 -> "Opening Gambit" + 201101 -> "Medium Straightaways ◎" + 201102 -> "Medium Straightaways ○" + 201111 -> "Medium Corners ◎" + 201112 -> "Medium Corners ○" + 201121 -> "Clairvoyance" + 201122 -> "Hawkeye" + 201131 -> "Lightning Step" + 201132 -> "Thunderbolt Step" + 201141 -> "Miraculous Step" + 201142 -> "Soft Step" + 201151 -> "Dominator" + 201152 -> "Tether" + 201161 -> "Mystifying Murmur" + 201162 -> "Murmur" + 201171 -> "Long Straightaways ◎" + 201172 -> "Long Straightaways ○" + 201181 -> "Long Corners ◎" + 201182 -> "Long Corners ○" + 201191 -> "Vanguard Spirit" + 201192 -> "Keeping the Lead" + 201201 -> "VIP Pass" + 201202 -> "Passing Pro" + 201211 -> "Overwhelming Pressure" + 201212 -> "Pressure" + 201221 -> "Stamina Siphon" + 201222 -> "Stamina Eater" + 201231 -> "Illusionist" + 201232 -> "Smoke Screen" + 201241 -> "Front Runner Straightaways ◎" + 201242 -> "Front Runner Straightaways ○" + 201251 -> "Front Runner Corners ◎" + 201252 -> "Front Runner Corners ○" + 201261 -> "Sixth Sense" + 201262 -> "Dodging Danger" + 201272 -> "Leader's Pride" + 201281 -> "Restless" + 201282 -> "Moxie" + 201291 -> "Reignition" + 201292 -> "Second Wind" + 201302 -> "Restart" + 201311 -> "Pace Chaser Straightaways ◎" + 201312 -> "Pace Chaser Straightaways ○" + 201321 -> "Pace Chaser Corners ◎" + 201322 -> "Pace Chaser Corners ○" + 201331 -> "Technician" + 201332 -> "Shrewd Step" + 201341 -> "Determined Descent" + 201342 -> "Straight Descent" + 201351 -> "Gourmand" + 201352 -> "Hydrate" + 201361 -> "Shatterproof" + 201362 -> "Tactical Tweak" + 201371 -> "Dazzling Disorientation" + 201372 -> "Disorient" + 201381 -> "Late Surger Straightaways ◎" + 201382 -> "Late Surger Straightaways ○" + 201391 -> "Late Surger Corners ◎" + 201392 -> "Late Surger Corners ○" + 201401 -> "Hard Worker" + 201402 -> "Fighter" + 201411 -> "15,000,000 CC" + 201412 -> "1,500,000 CC" + 201421 -> "Relax" + 201422 -> "A Small Breather" + 201431 -> "The Bigger Picture" + 201432 -> "Studious" + 201441 -> "All-Seeing Eyes" + 201442 -> "Sharp Gaze" + 201451 -> "End Closer Straightaways ◎" + 201452 -> "End Closer Straightaways ○" + 201461 -> "End Closer Corners ◎" + 201462 -> "End Closer Corners ○" + 201471 -> "The Coast Is Clear!" + 201472 -> "I Can See Right Through You" + 201481 -> "Go-Home Specialist" + 201482 -> "After-School Stroll" + 201491 -> "Serenity" + 201492 -> "Levelheaded" + 201501 -> "Crusader" + 201502 -> "Strategist" + 201511 -> "Petrifying Gaze" + 201512 -> "Intense Gaze" + 201521 -> "Front Runner Savvy ◎" + 201522 -> "Front Runner Savvy ○" + 201531 -> "Pace Chaser Savvy ◎" + 201532 -> "Pace Chaser Savvy ○" + 201541 -> "Late Surger Savvy ◎" + 201542 -> "Late Surger Savvy ○" + 201551 -> "End Closer Savvy ◎" + 201552 -> "End Closer Savvy ○" + 201561 -> "Super Lucky Seven" + 201562 -> "Lucky Seven" + 201571 -> "Triple 7s" + 201581 -> "Highlander" + 201591 -> "Uma Stan" + 201592 -> "Superstan" + 201601 -> "Groundwork" + 201611 -> "Tail Held High" + 201612 -> "Tail Nine" + 201621 -> "Shake It Out" + 201631 -> "Sympathy" + 201641 -> "Lone Wolf" + 201651 -> "Slipstream" + 201661 -> "Playtime's Over!" + 201671 -> "Trending in the Charts!" + 201672 -> "Top Pick" + 201681 -> "Lead the Charge!" + 201682 -> "Forward, March!" + 201691 -> "Lie in Wait" + 201692 -> "Be Still" + 201701 -> "Come What May" + 201702 -> "All I've Got" + 201801 -> "♡ 3D Nail Art" + 201902 -> "Head-On" + 202002 -> "Familiar Ground" + 202022 -> "Early Start" + 202032 -> "Risky Business" + 202051 -> "Runaway" + 210011 -> "Burning Spirit SPD" + 210012 -> "Ignited Spirit SPD" + 210021 -> "Burning Spirit STA" + 210022 -> "Ignited Spirit STA" + 210031 -> "Burning Spirit PWR" + 210032 -> "Ignited Spirit PWR" + 210041 -> "Burning Spirit GUTS" + 210042 -> "Ignited Spirit GUTS" + 210051 -> "Burning Spirit WIT" + 210052 -> "Ignited Spirit WIT" + 300011 -> "Unquenched Thirst" + 300021 -> "Unchanging" + 300031 -> "Towards the Scenery I Seek" + 300041 -> "Creeping Anxiety" + 300051 -> "Blatant Fear" + 300061 -> "Dream Run" + 300071 -> "Show Me What Lies Beyond!" + 300081 -> "Hoiya! Have a Good Run!" + 300091 -> "As a Friend and Rival" + 300101 -> "Cheers of a Fellow Dreamer" + 900011 -> "Shooting Star" ++ " (Inherited)" + 900021 -> "The View from the Lead Is Mine!" ++ " (Inherited)" + 900031 -> "Sky-High Teio Step" ++ " (Inherited)" + 900041 -> "Red Shift/LP1211-M" ++ " (Inherited)" + 900051 -> "Lights of Vaudeville" ++ " (Inherited)" + 900061 -> "Triumphant Pulse" ++ " (Inherited)" + 900071 -> "Anchors Aweigh!" ++ " (Inherited)" + 900081 -> "Cut and Drive!" ++ " (Inherited)" + 900091 -> "Resplendent Red Ace" ++ " (Inherited)" + 900101 -> "Shooting for Victory!" ++ " (Inherited)" + 900111 -> "Where There's a Will, There's a Way" ++ " (Inherited)" + 900121 -> "You and Me! One-on-One!" ++ " (Inherited)" + 900131 -> "The Duty of Dignity Calls" ++ " (Inherited)" + 900141 -> "Victoria por plancha ☆" ++ " (Inherited)" + 900151 -> "This Dance Is for Vittoria!" ++ " (Inherited)" + 900161 -> "Shadow Break" ++ " (Inherited)" + 900171 -> "Behold Thine Emperor's Divine Might" ++ " (Inherited)" + 900181 -> "Blazing Pride" ++ " (Inherited)" + 900191 -> "OMG! (゚∀゚) The Final Sprint! ☆" ++ " (Inherited)" + 900201 -> "Angling and Scheming" ++ " (Inherited)" + 900211 -> "White Lightning Comin' Through!" ++ " (Inherited)" + 900221 -> "Fairy Tale" ++ " (Inherited)" + 900231 -> "∴win Q.E.D." ++ " (Inherited)" + 900241 -> "Flashy☆Landing" ++ " (Inherited)" + 900251 -> "Chasing After You" ++ " (Inherited)" + 900261 -> "G00 1st. F∞;" ++ " (Inherited)" + 900271 -> "Let's Pump Some Iron!" ++ " (Inherited)" + 900281 -> "YUMMY☆SPEED!" ++ " (Inherited)" + 900301 -> "Blue Rose Closer" ++ " (Inherited)" + 900321 -> "U=ma2" ++ " (Inherited)" + 900351 -> "Our Ticket to Win!" ++ " (Inherited)" + 900371 -> "Schwarzes Schwert" ++ " (Inherited)" + 900381 -> "#LookatCurren" ++ " (Inherited)" + 900391 -> "A Princess Must Seize Victory!" ++ " (Inherited)" + 900401 -> "KEEP IT REAL." ++ " (Inherited)" + 900411 -> "Genius x Bakushin = Victory" ++ " (Inherited)" + 900451 -> "Pure Heart" ++ " (Inherited)" + 900461 -> "SPARKLY☆STARDOM" ++ " (Inherited)" + 900481 -> "Pop & Polish" ++ " (Inherited)" + 900501 -> "Nemesis" ++ " (Inherited)" + 900521 -> "Super-Duper Climax" ++ " (Inherited)" + 900561 -> "I See Victory in My Future!" ++ " (Inherited)" + 900581 -> "I Never Goof Up!" ++ " (Inherited)" + 900591 -> "Moving Past, and Beyond" ++ " (Inherited)" + 900601 -> "Just a Little Farther!" ++ " (Inherited)" + 900611 -> "Prideful King" ++ " (Inherited)" + 910011 -> "Dazzl'n ♪ Diver" ++ " (Inherited)" + 910031 -> "Certain Victory" ++ " (Inherited)" + 910041 -> "A Kiss for Courage" ++ " (Inherited)" + 910061 -> "Festive Miracle" ++ " (Inherited)" + 910111 -> "Superior Heal" ++ " (Inherited)" + 910131 -> "Legacy of the Strong" ++ " (Inherited)" + 910141 -> "Condor's Fury" ++ " (Inherited)" + 910171 -> "Arrows Whistle, Shadows Disperse" ++ " (Inherited)" + 910181 -> "Eternal Moments" ++ " (Inherited)" + 910231 -> "Presents from X" ++ " (Inherited)" + 910241 -> "Flowery☆Maneuver" ++ " (Inherited)" + 910301 -> "Every Rose Has Its Fangs" ++ " (Inherited)" + 910401 -> "Dancing in the Leaves" ++ " (Inherited)" + 910451 -> "Give Mummy a Hug ♡" ++ " (Inherited)" + 910561 -> "Bountiful Harvest" ++ " (Inherited)" + x -> "skill " ++ x.show + +// Get the description for a skill. +// If no skill matches the ID, the result is the empty string. +pub fun description(s: skill-id): string + match s.game-id + 10071 -> "Slightly increase velocity with a long spurt starting halfway through the race." + 10081 -> "Become stronger at challenging rivals and moderately increase velocity when positioned toward the front with 200m or less remaining." + 10091 -> "Slightly swell with the determination to be number one when positioned toward the front in the second half of the race." + 10111 -> "Moderately increase velocity with a strong turn of foot when passing another runner toward the back on the final straight." + 10141 -> "Slightly hang on to the advantage when positioned toward the front with energy to spare on the final straight." + 10181 -> "Moderately increase velocity with the stride of an empress when passing another runner from midpack or further back on the final corner." + 10241 -> "Slightly increase ability to break out of the pack on the straight after engaging in a challenge toward the front on the final corner or later." + 10271 -> "Moderately increase acceleration in an attempt to move up on a corner late-race." + 10321 -> "Moderately recover endurance and slightly increase velocity for a moderate duration when sitting off the pace on a corner in the second half of the race." + 10351 -> "Moderately increase velocity with winning ambition when positioned toward the front on the final straight after engaging in a challenge on the final corner or later." + 10411 -> "Moderately increase velocity with BAKUSHIN power when engaged in a challenge toward the front in the second half of the race." + 10451 -> "Recover endurance when well-positioned mid-race." + 10521 -> "Moderately recover endurance with a glance at nearby runners when positioned toward the back on the final corner." + 10561 -> "Moderately clear a path forward with the power of divination when the way ahead is jammed late-race." + 10601 -> "Moderately increase velocity with an arousal of fighting spirit when positioned 3rd and about to lose late-race." + 10611 -> "Increase velocity in a true display of skill with 200m remaining after racing calmly." + 100011 -> "Ride the momentum to increase velocity and very slightly increase acceleration after passing another runner toward the front late-race." + 100021 -> "Increase velocity by drawing on all remaining strength when in the lead by a fair margin in the second half of the race." + 100031 -> "Greatly increase velocity with flashy footwork when closing the gap to runners ahead on the final straight." + 100041 -> "Increase acceleration by shifting gears when positioned toward the front on the final corner or later." + 100051 -> "Greatly increase velocity with a dazzling display when just breaking out of the pack toward the front on the final straight." + 100061 -> "Greatly increase ability to break out of the pack by opening up a path when positioned toward the front with 200m remaining." + 100071 -> "Moderately increase velocity steadily with a long spurt starting halfway through the race." + 100081 -> "Become stronger at challenging rivals and increase velocity when positioned toward the front with 200m or less remaining." + 100091 -> "Swell with the determination to be number one when positioned toward the front in the second half of the race." + 100101 -> "Increase acceleration with a pow, a wow, and a bang when well-positioned upon approaching the final straight." + 100111 -> "Increase velocity with a strong turn of foot when passing another runner toward the back on the final straight." + 100121 -> "Increase velocity on the final straight after passing another runner on the outside toward the back on the final corner or later." + 100131 -> "Increase velocity with the determination to not be overtaken when positioned toward the front on the final corner." + 100141 -> "Hang onto the advantage when positioned toward the front with energy to spare on the final straight." + 100151 -> "Increase velocity with royal brilliance when positioned toward the front and close to the runner ahead or behind on the final corner or later." + 100161 -> "Increase velocity with beastly strength when passing another runner on the outside on the final corner or later. If the skill user engaged in a challenge mid-race, greatly increase velocity instead." + 100171 -> "Greatly increase velocity on the final straight after passing another runner 3 times late-race." + 100181 -> "Increase velocity with the stride of an empress when passing another runner from midpack or further back on the final corner." + 100191 -> "Increase velocity and navigation with the pure euphoria of being within breathing distance of precious waifus after passing another runner 2 times late-race." + 100201 -> "Increase acceleration at an opportune moment when in the lead on a corner late-race." + 100211 -> "Bolt down the track like lightning when well-positioned or aiming for the front from midpack on a straight in the second half of the race." + 100221 -> "Increase velocity with the excitement of running when engaged in a challenge while well-positioned in the second half of the race." + 100231 -> "Increase velocity by deriving the winning equation when passing another runner toward the front on the final corner or later." + 100241 -> "Increase ability to break out of the pack on the straight after engaging in a challenge toward the front on the final corner or later." + 100251 -> "Chase after an unseen friend when in midpack in the second half of the race, moderately increasing velocity steadily and very slightly intimidating runners ahead." + 100261 -> "Increase velocity when positioned toward the front after making it to the final straight without faltering." + 100271 -> "Increase acceleration in an attempt to move up on a corner late-race." + 100281 -> "Kick forward hard with renewed vigor when starting to get tired while well-positioned halfway through the race." + 100301 -> "Increase velocity with strong willpower on the final straight after passing another runner in the front part of the pack on the final corner or later." + 100321 -> "Recover endurance and moderately increase velocity for a moderate duration when sitting off the pace on a corner in the second half of the race." + 100351 -> "Increase velocity with winning ambition when positioned toward the front on the final straight after engaging in a challenge on the final corner or later." + 100371 -> "Increase velocity in a dash for the lead after running calmly and according to plan up until the final straight." + 100381 -> "Gain momentum and begin to advance when passing another runner while well-positioned around halfway through the race." + 100391 -> "Increase velocity with pretty princess power when engaged in a challenge on the final straight." + 100401 -> "Moderately increase acceleration steadily with a wink when starting to make a move from midpack in the second half of the race." + 100411 -> "Increase velocity with BAKUSHIN power when engaged in a challenge toward the front in the second half of the race." + 100451 -> "Greatly recover endurance when well-positioned mid-race." + 100461 -> "Become empowered to keep the spotlight when positioned toward the front and close to the runner behind on a straight mid-race." + 100481 -> "Get hyped and increase velocity when pressured by or passing another runner while well-positioned on the final straight." + 100501 -> "Increase velocity with smoldering ambition when moving up from midpack on the final corner or later." + 100521 -> "Recover endurance with a glance at nearby runners when positioned toward the back on the final corner." + 100561 -> "Clear a path forward with the power of divination when the way ahead is jammed late-race." + 100581 -> "Aim for the front with unwavering determination when passing another runner from midpack or further back on a corner late-race." + 100591 -> "Having run the race calmly, increase acceleration with hardened determination when making a move mid-race, or on a crucial corner late-race whilst in midpack." + 100601 -> "Increase velocity with flaring fighting spirit when positioned 3rd and about to lose late-race." + 100611 -> "Greatly increase velocity in a true display of skill with 200m remaining after racing calmly." + 110011 -> "Recover endurance by relaxing after activating 2 skills when positioned midpack mid-race." + 110031 -> "Greatly increase velocity with an indomitable fighting spirit on the final straight after being on the heels of another runner toward the front on the final corner or later." + 110041 -> "Increase velocity enthusiastically when positioned toward the front in the second half of the race after recovering endurance with a skill." + 110061 -> "Control breathing and kick forward hard toward victory in the second half of the race after recovering endurance with skills at least 3 times." + 110111 -> "Greatly recover endurance with a gentle light when overtaken toward the back mid-race." + 110131 -> "Increase velocity continuously when pressured by another runner and running out of energy toward the front on the final corner or later." + 110141 -> "Increase acceleration with blazing passion when aiming for the front from midpack on the final corner." + 110171 -> "Increase velocity with a blazing spirit when pressured by another runner in the front part of the pack on the final corner or later." + 110181 -> "Increase velocity when starting to make a move from a position toward the front mid-race." + 110231 -> "Increase velocity by deriving a path to victory mid-race after staying well-positioned from the start of the race up until the second half." + 110241 -> "Increase velocity when passing another runner toward the front on the final corner. If passing toward the back, increase acceleration instead." + 110301 -> "Suck endurance from runners ahead when well-positioned and pressured by another runner mid-race." + 110401 -> "Increase ability to break out of the pack when engaged in a challenge in midpack on the final corner." + 110451 -> "Increase ability to break out of the pack when well-positioned and close to the runner ahead on the final straight." + 110561 -> "Increase velocity with a surge of great fortune when pressured by another runner toward the back in the second half of the race." + 200011 -> "Increase performance on right-handed tracks." + 200012 -> "Moderately increase performance on right-handed tracks." + 200013 -> "Moderately decrease performance on right-handed tracks." + 200021 -> "Increase performance on left-handed tracks." + 200022 -> "Moderately increase performance on left-handed tracks." + 200023 -> "Moderately decrease performance on left-handed tracks." + 200031 -> "Increase performance at Tokyo Racecourse." + 200032 -> "Moderately increase performance at Tokyo Racecourse." + 200033 -> "Moderately decrease performance at Tokyo Racecourse." + 200041 -> "Increase performance at Nakayama Racecourse." + 200042 -> "Moderately increase performance at Nakayama Racecourse." + 200043 -> "Moderately decrease performance at Nakayama Racecourse." + 200051 -> "Increase performance at Hanshin Racecourse." + 200052 -> "Moderately increase performance at Hanshin Racecourse." + 200053 -> "Moderately decrease performance at Hanshin Racecourse." + 200061 -> "Increase performance at Kyoto Racecourse." + 200062 -> "Moderately increase performance at Kyoto Racecourse." + 200063 -> "Moderately decrease performance at Kyoto Racecourse." + 200064 -> "Increase performance at Kyoto Racecourse, boosting Stamina and Wit." + 200071 -> "Increase performance at Chukyo Racecourse." + 200072 -> "Moderately increase performance at Chukyo Racecourse." + 200073 -> "Moderately decrease performance at Chukyo Racecourse." + 200081 -> "Increase performance at Sapporo Racecourse." + 200082 -> "Moderately increase performance at Sapporo Racecourse." + 200083 -> "Moderately decrease performance at Sapporo Racecourse." + 200091 -> "Increase performance at Hakodate Racecourse." + 200092 -> "Moderately increase performance at Hakodate Racecourse." + 200093 -> "Moderately decrease performance at Hakodate Racecourse." + 200101 -> "Increase performance at Fukushima Racecourse." + 200102 -> "Moderately increase performance at Fukushima Racecourse." + 200103 -> "Moderately decrease performance at Fukushima Racecourse." + 200111 -> "Increase performance at Niigata Racecourse." + 200112 -> "Moderately increase performance at Niigata Racecourse." + 200113 -> "Moderately decrease performance at Niigata Racecourse." + 200121 -> "Increase performance at Kokura Racecourse." + 200122 -> "Moderately increase performance at Kokura Racecourse." + 200123 -> "Moderately decrease performance at Kokura Racecourse." + 200131 -> "Increase performance over standard distances (multiples of 400m)." + 200132 -> "Moderately increase performance over standard distances (multiples of 400m)." + 200133 -> "Moderately decrease performance over standard distances (multiples of 400m)." + 200141 -> "Increase performance over non-standard distances (non-multiples of 400m)." + 200142 -> "Moderately increase performance over non-standard distances (non-multiples of 400m)." + 200143 -> "Moderately decrease performance over non-standard distances (non-multiples of 400m)." + 200151 -> "Increase performance on firm ground." + 200152 -> "Moderately increase performance on firm ground." + 200153 -> "Moderately decrease performance on firm ground." + 200161 -> "Increase performance on good, soft, and heavy ground." + 200162 -> "Moderately increase performance on good, soft, and heavy ground." + 200163 -> "Moderately decrease performance on good, soft, and heavy ground." + 200171 -> "Increase performance in spring." + 200172 -> "Moderately increase performance in spring." + 200173 -> "Moderately decrease performance in spring." + 200181 -> "Increase performance in summer." + 200182 -> "Moderately increase performance in summer." + 200183 -> "Moderately decrease performance in summer." + 200191 -> "Increase performance in fall." + 200192 -> "Moderately increase performance in fall." + 200193 -> "Moderately decrease performance in fall." + 200194 -> "Increase performance in fall, boosting Speed and Power." + 200201 -> "Increase performance in winter." + 200202 -> "Moderately increase performance in winter." + 200203 -> "Moderately decrease performance in winter." + 200211 -> "Increase performance in sunny weather." + 200212 -> "Moderately increase performance in sunny weather." + 200221 -> "Increase performance in cloudy weather." + 200222 -> "Moderately increase performance in cloudy weather." + 200231 -> "Increase performance in rainy weather." + 200232 -> "Moderately increase performance in rainy weather." + 200233 -> "Moderately decrease performance in rainy weather." + 200241 -> "Increase performance in snowy weather." + 200242 -> "Moderately increase performance in snowy weather." + 200251 -> "Increase performance in brackets 1–3." + 200252 -> "Moderately increase performance in brackets 1–3." + 200253 -> "Moderately decrease performance in brackets 1–3." + 200261 -> "Increase performance in brackets 6–8." + 200262 -> "Moderately increase performance in brackets 6–8." + 200263 -> "Moderately decrease performance in brackets 6–8." + 200271 -> "Greatly increase performance when no other runners are using the same strategy." + 200272 -> "Increase performance when no other runners are using the same strategy." + 200281 -> "Increase performance when many other runners are using the same strategy." + 200282 -> "Moderately increase performance when many other runners are using the same strategy." + 200283 -> "Moderately decrease performance when many other runners are using the same strategy." + 200291 -> "Increase performance when the favorite is using the same strategy." + 200292 -> "Moderately increase performance when the favorite is using the same strategy." + 200301 -> "Increase performance when 4th favorite or below." + 200302 -> "Moderately increase performance when 4th favorite or below." + 200311 -> "Moderately decrease performance in G1 or otherwise important races." + 200321 -> "Moderately decrease performance when the favorite." + 200331 -> "Increase velocity on a corner with skilled turning." + 200332 -> "Slightly increase velocity on a corner with skilled turning." + 200333 -> "Moderately decrease velocity on a corner with clumsy turning." + 200341 -> "Increase acceleration on a corner with masterful turning." + 200342 -> "Slightly increase acceleration on a corner with masterful turning." + 200343 -> "Moderately decrease acceleration on a corner with awkward turning." + 200351 -> "Recover endurance on a corner with efficient turning." + 200352 -> "Slightly recover endurance on a corner with efficient turning." + 200353 -> "Moderately lose endurance on a corner with inefficient turning." + 200361 -> "Increase velocity on a straight." + 200362 -> "Slightly increase velocity on a straight." + 200371 -> "Increase acceleration on a straight." + 200372 -> "Slightly increase acceleration on a straight." + 200381 -> "Recover endurance on a straight." + 200382 -> "Slightly recover endurance on a straight." + 200391 -> "Moderately increase fatigue on an uphill." + 200401 -> "Moderately lose endurance when surrounded." + 200411 -> "Moderately increase urge to give up when positioned around the very back on the final straight." + 200421 -> "Moderately increase carelessness when in the lead with around 200m remaining." + 200431 -> "Decrease time lost to slow starts." + 200432 -> "Slightly decrease time lost to slow starts." + 200433 -> "Moderately increase time lost to slow starts." + 200441 -> "Recover endurance when the way ahead is jammed early-race or mid-race." + 200442 -> "Slightly recover endurance when the way ahead is jammed early-race or mid-race." + 200451 -> "Greatly increase navigation early-race." + 200452 -> "Increase navigation early-race." + 200461 -> "Increase velocity when passing another runner mid-race." + 200462 -> "Slightly increase velocity when passing another runner mid-race." + 200471 -> "Recover endurance when passed by another runner mid-race." + 200472 -> "Slightly recover endurance when passed by another runner mid-race." + 200481 -> "Recover endurance when surrounded mid-race." + 200482 -> "Slightly recover endurance when surrounded mid-race." + 200491 -> "Increase maneuverability when the way ahead is blocked in the last spurt." + 200492 -> "Slightly increase maneuverability when the way ahead is blocked in the last spurt." + 200501 -> "Increase navigation late-race." + 200502 -> "Moderately increase navigation late-race." + 200511 -> "Increase velocity in the last spurt." + 200512 -> "Slightly increase velocity in the last spurt." + 200521 -> "Moderately increase fatigue when in the lead by too large of a margin." + 200531 -> "Increase ability to go to the front early-race. (Front Runner)" + 200532 -> "Slightly increase ability to go to the front early-race. (Front Runner)" + 200541 -> "Increase ability to go to the front mid-race. (Front Runner)" + 200542 -> "Slightly increase ability to go to the front mid-race. (Front Runner)" + 200551 -> "Increase ability to keep the lead on the final corner. (Front Runner)" + 200552 -> "Slightly increase ability to keep the lead on the final corner. (Front Runner)" + 200561 -> "Decrease fatigue upon approaching mid-race. (Pace Chaser)" + 200562 -> "Slightly decrease fatigue upon approaching mid-race. (Pace Chaser)" + 200571 -> "Decrease fatigue mid-race. (Pace Chaser)" + 200572 -> "Slightly decrease fatigue mid-race. (Pace Chaser)" + 200581 -> "Increase ability to break out of the pack on the final corner. (Pace Chaser)" + 200582 -> "Slightly increase ability to break out of the pack on the final corner. (Pace Chaser)" + 200591 -> "Increase velocity mid-race. (Late Surger)" + 200592 -> "Slightly increase velocity mid-race. (Late Surger)" + 200601 -> "Increase acceleration late-race. (Late Surger)" + 200602 -> "Slightly increase acceleration late-race. (Late Surger)" + 200611 -> "Increase velocity when passing another runner on the outside on the final corner. (Late Surger)" + 200612 -> "Slightly increase velocity when passing another runner on the outside on the final corner. (Late Surger)" + 200621 -> "Decrease fatigue mid-race. (End Closer)" + 200622 -> "Slightly decrease fatigue mid-race. (End Closer)" + 200631 -> "Move up in preparation to close the gap when positioned toward the back late-race. (End Closer)" + 200632 -> "Slightly move up in preparation to close the gap when positioned toward the back late-race. (End Closer)" + 200641 -> "Increase acceleration on a straight in the last spurt. (End Closer)" + 200642 -> "Slightly increase acceleration on a straight in the last spurt. (End Closer)" + 200651 -> "Increase acceleration on a straight. (Sprint)" + 200652 -> "Slightly increase acceleration on a straight. (Sprint)" + 200662 -> "Slightly decrease fatigue and very slightly increase acceleration when positioned toward the back mid-race. (Sprint)" + 200671 -> "Increase spurting ability when positioned toward the back late-race. (Sprint)" + 200672 -> "Slightly increase spurting ability when positioned toward the back late-race. (Sprint)" + 200681 -> "Widen the margin when positioned toward the front early-race. (Mile)" + 200682 -> "Slightly widen the margin when positioned toward the front early-race. (Mile)" + 200691 -> "Decrease fatigue, then moderately decrease velocity of runners ahead when positioned toward the back upon approaching mid-race. (Mile)" + 200692 -> "Slightly decrease fatigue, then very slightly decrease velocity of runners ahead when positioned toward the back upon approaching mid-race. (Mile)" + 200701 -> "Increase passing ability when positioned toward the back late-race. (Mile)" + 200702 -> "Slightly increase passing ability when positioned toward the back late-race. (Mile)" + 200711 -> "Decrease fatigue when positioned toward the front mid-race. (Medium)" + 200712 -> "Slightly decrease fatigue when positioned toward the front mid-race. (Medium)" + 200721 -> "Increase positioning ability when positioned toward the front mid-race. (Medium)" + 200722 -> "Slightly increase positioning ability when positioned toward the front mid-race. (Medium)" + 200731 -> "Increase ability to fight back when passed by another runner on the final corner. (Medium)" + 200732 -> "Slightly increase ability to fight back when passed by another runner on the final corner. (Medium)" + 200741 -> "Decrease fatigue by taking a breather upon entering a straight. (Long)" + 200742 -> "Slightly decrease fatigue by taking a breather upon entering a straight. (Long)" + 200751 -> "Increase velocity when near the inner rail on the final corner. (Long)" + 200752 -> "Slightly increase velocity when near the inner rail on the final corner. (Long)" + 200761 -> "Regain the energy to run when close to exhausting strength. (Long)" + 200762 -> "Slightly regain the energy to run when close to exhausting strength. (Long)" + 200771 -> "Slightly increase fatigue for rushed runners behind when positioned toward the front mid-race." + 200772 -> "Increase fatigue for rushed runners behind when positioned toward the front mid-race." + 200781 -> "Slightly increase fatigue for rushed runners ahead when positioned toward the back mid-race." + 200791 -> "Increase time needed for front runners to calm down when they become rushed." + 200801 -> "Increase time needed for pace chasers to calm down when they become rushed." + 200811 -> "Increase time needed for late surgers to calm down when they become rushed." + 200821 -> "Increase time needed for end closers to calm down when they become rushed." + 200831 -> "Slightly increase fatigue for front runners early-race." + 200841 -> "Slightly increase fatigue for front runners mid-race." + 200851 -> "Slightly decrease velocity of front runners late-race." + 200861 -> "Slightly increase fatigue for pace chasers early-race." + 200871 -> "Slightly increase fatigue for pace chasers mid-race." + 200881 -> "Slightly decrease velocity of pace chasers late-race." + 200891 -> "Slightly increase fatigue for late surgers early-race." + 200901 -> "Slightly increase fatigue for late surgers mid-race." + 200911 -> "Slightly decrease velocity of late surgers late-race." + 200921 -> "Slightly increase fatigue for end closers early-race." + 200931 -> "Slightly increase fatigue for end closers mid-race." + 200941 -> "Slightly decrease velocity of end closers late-race." + 200951 -> "Increase performance at Oi Racecourse." + 200952 -> "Moderately increase performance at Oi Racecourse." + 200953 -> "Moderately decrease performance at Oi Racecourse." + 200961 -> "Moderately increase velocity on a straight. (Sprint)" + 200962 -> "Slightly increase velocity on a straight. (Sprint)" + 200971 -> "Moderately increase velocity on a corner. (Sprint)" + 200972 -> "Slightly increase velocity on a corner. (Sprint)" + 200981 -> "Increase ability to maintain the lead when leading by a large margin mid-race. (Sprint)" + 200982 -> "Slightly increase ability to maintain the lead when leading by a large margin mid-race. (Sprint)" + 200991 -> "Increase passing ability when positioned toward the front upon approaching late-race. (Sprint)" + 200992 -> "Slightly increase passing ability when positioned toward the front upon approaching late-race. (Sprint)" + 201001 -> "Prepare to make for the finish line for a medium duration mid-race. (Sprint)" + 201002 -> "Moderately prepare to make for the finish line for a medium duration mid-race. (Sprint)" + 201011 -> "Intimidate runners behind when positioned toward the front early-race. (Sprint)" + 201012 -> "Moderately intimidate runners behind when positioned toward the front early-race. (Sprint)" + 201021 -> "Cause panic in and moderately dull movement for runners ahead when positioned toward the back early-race. (Sprint)" + 201022 -> "Slightly cause panic in and very slightly dull movement for runners ahead when positioned toward the back early-race. (Sprint)" + 201031 -> "Moderately increase velocity on a straight. (Mile)" + 201032 -> "Slightly increase velocity on a straight. (Mile)" + 201041 -> "Moderately increase velocity on a corner. (Mile)" + 201042 -> "Slightly increase velocity on a corner. (Mile)" + 201051 -> "Increase passing ability when positioned toward the front mid-race. (Mile)" + 201052 -> "Slightly increase passing ability when positioned toward the front mid-race. (Mile)" + 201061 -> "Increase acceleration when passing another runner mid-race. (Mile)" + 201062 -> "Slightly increase acceleration when passing another runner mid-race. (Mile)" + 201071 -> "Increase passing ability. (Mile)" + 201072 -> "Slightly increase passing ability. (Mile)" + 201081 -> "Moderately steal velocity from runners behind when positioned toward the front mid-race. (Mile)" + 201082 -> "Slightly steal velocity from runners behind when positioned toward the front mid-race. (Mile)" + 201091 -> "Dull movement for runners ahead when positioned toward the back early-race. (Mile)" + 201092 -> "Slightly dull movement for runners ahead when positioned toward the back early-race. (Mile)" + 201101 -> "Moderately increase velocity on a straight. (Medium)" + 201102 -> "Slightly increase velocity on a straight. (Medium)" + 201111 -> "Moderately increase velocity on a corner. (Medium)" + 201112 -> "Slightly increase velocity on a corner. (Medium)" + 201121 -> "Widen field of view with heightened observation early-race. (Medium)" + 201122 -> "Moderately widen field of view with heightened observation early-race. (Medium)" + 201131 -> "Avoid becoming surrounded for a medium duration when positioned toward the back mid-race. (Medium)" + 201132 -> "Moderately avoid becoming surrounded for a medium duration when positioned toward the back mid-race. (Medium)" + 201141 -> "Decrease fatigue when moving sideways. (Medium)" + 201142 -> "Slightly decrease fatigue when moving sideways. (Medium)" + 201151 -> "Decrease velocity of runners ahead when positioned toward the back late-race. (Medium)" + 201152 -> "Slightly decrease velocity of runners ahead when positioned toward the back late-race. (Medium)" + 201161 -> "Disturb runners directly ahead mid-race. (Medium)" + 201162 -> "Slightly disturb runners directly ahead mid-race. (Medium)" + 201171 -> "Moderately increase velocity on a straight. (Long)" + 201172 -> "Slightly increase velocity on a straight. (Long)" + 201181 -> "Moderately increase velocity on a corner. (Long)" + 201182 -> "Slightly increase velocity on a corner. (Long)" + 201191 -> "Increase ability to maintain the lead when leading by a fair margin mid-race. (Long)" + 201192 -> "Slightly increase ability to maintain the lead when leading by a fair margin mid-race. (Long)" + 201201 -> "Decrease fatigue when determined to pass another runner. (Long)" + 201202 -> "Slightly decrease fatigue when determined to pass another runner. (Long)" + 201211 -> "Increase velocity when passing another runner late-race. (Long)" + 201212 -> "Slightly increase velocity when passing another runner late-race. (Long)" + 201221 -> "Slightly steal endurance from runners ahead when positioned toward the back mid-race. (Long)" + 201222 -> "Very slightly steal endurance from runners ahead when positioned toward the back mid-race. (Long)" + 201231 -> "Narrow the field of view for runners ahead late-race. (Long)" + 201232 -> "Moderately narrow the field of view for runners ahead late-race. (Long)" + 201241 -> "Moderately increase velocity on a straight. (Front Runner)" + 201242 -> "Slightly increase velocity on a straight. (Front Runner)" + 201251 -> "Moderately increase velocity on a corner. (Front Runner)" + 201252 -> "Slightly increase velocity on a corner. (Front Runner)" + 201261 -> "Avoid becoming surrounded early-race. (Front Runner)" + 201262 -> "Moderately avoid becoming surrounded early-race. (Front Runner)" + 201272 -> "Slightly increase ability to pass or challenge another runner early-race or mid-race. (Front Runner)" + 201281 -> "Reduce fatigue on an uphill. (Front Runner)" + 201282 -> "Slightly reduce fatigue on an uphill. (Front Runner)" + 201291 -> "Increase acceleration when not in the lead mid-race. (Front Runner)" + 201292 -> "Slightly increase acceleration when not in the lead mid-race. (Front Runner)" + 201302 -> "Slightly dull movement for runners ahead when not in the lead early-race. (Front Runner)" + 201311 -> "Moderately increase velocity on a straight. (Pace Chaser)" + 201312 -> "Slightly increase velocity on a straight. (Pace Chaser)" + 201321 -> "Moderately increase velocity on a corner. (Pace Chaser)" + 201322 -> "Slightly increase velocity on a corner. (Pace Chaser)" + 201331 -> "Moderately increase ability to navigate smoothly. (Pace Chaser)" + 201332 -> "Slightly increase ability to navigate smoothly. (Pace Chaser)" + 201341 -> "Moderately improve running on a downhill. (Pace Chaser)" + 201342 -> "Slightly improve running on a downhill. (Pace Chaser)" + 201351 -> "Recover endurance mid-race. (Pace Chaser)" + 201352 -> "Slightly recover endurance mid-race. (Pace Chaser)" + 201361 -> "Moderately increase acceleration when positioned toward the back mid-race. (Pace Chaser)" + 201362 -> "Slightly increase acceleration when positioned toward the back mid-race. (Pace Chaser)" + 201371 -> "Moderately narrow the field of view for runners behind when positioned toward the front late-race. (Pace Chaser)" + 201372 -> "Slightly narrow the field of view for runners behind when positioned toward the front late-race. (Pace Chaser)" + 201381 -> "Moderately increase velocity on a straight. (Late Surger)" + 201382 -> "Slightly increase velocity on a straight. (Late Surger)" + 201391 -> "Moderately increase velocity on a corner. (Late Surger)" + 201392 -> "Slightly increase velocity on a corner. (Late Surger)" + 201401 -> "Moderately increase acceleration for a medium duration when trying to pass another runner. (Late Surger)" + 201402 -> "Slightly increase acceleration for a medium duration when trying to pass another runner. (Late Surger)" + 201411 -> "Increase velocity on an uphill. (Late Surger)" + 201412 -> "Slightly increase velocity on an uphill. (Late Surger)" + 201421 -> "Recover endurance late-race. (Late Surger)" + 201422 -> "Slightly recover endurance late-race. (Late Surger)" + 201431 -> "Widen field of view with heightened observation mid-race. (Late Surger)" + 201432 -> "Slightly widen field of view with heightened observation mid-race. (Late Surger)" + 201441 -> "Startle other runners late-race. (Late Surger)" + 201442 -> "Slightly startle other runners late-race. (Late Surger)" + 201451 -> "Moderately increase velocity on a straight. (End Closer)" + 201452 -> "Slightly increase velocity on a straight. (End Closer)" + 201461 -> "Moderately increase velocity on a corner. (End Closer)" + 201462 -> "Slightly increase velocity on a corner. (End Closer)" + 201471 -> "Moderately widen field of view with situational awareness when moving sideways. (End Closer)" + 201472 -> "Slightly widen field of view with situational awareness when moving sideways. (End Closer)" + 201481 -> "Reduce fatigue on a downhill. (End Closer)" + 201482 -> "Slightly reduce fatigue on a downhill. (End Closer)" + 201491 -> "Regain composure by calming down when the way ahead is jammed. (End Closer)" + 201492 -> "Slightly regain composure by calming down when the way ahead is jammed. (End Closer)" + 201501 -> "Widen field of view when positioned toward the back late-race. (End Closer)" + 201502 -> "Slightly widen field of view when positioned toward the back late-race. (End Closer)" + 201511 -> "Unnerve runners in focus late-race. (End Closer)" + 201512 -> "Slightly unnerve runners in focus late-race. (End Closer)" + 201521 -> "Increase ability to get into a good position. (Front Runner)" + 201522 -> "Moderately increase ability to get into a good position. (Front Runner)" + 201531 -> "Increase ability to get into a good position. (Pace Chaser)" + 201532 -> "Moderately increase ability to get into a good position. (Pace Chaser)" + 201541 -> "Increase ability to get into a good position. (Late Surger)" + 201542 -> "Moderately increase ability to get into a good position. (Late Surger)" + 201551 -> "Increase ability to get into a good position. (End Closer)" + 201552 -> "Moderately increase ability to get into a good position. (End Closer)" + 201561 -> "Good things may happen when in bracket 7." + 201562 -> "Moderately good things may happen when in bracket 7." + 201571 -> "Slightly gain energy with 777m remaining." + 201581 -> "Slightly improve running on an uphill." + 201591 -> "Slightly increase velocity when close to many runners." + 201592 -> "Increase velocity when close to many runners." + 201601 -> "Slightly increase acceleration after activating many skills early-race." + 201611 -> "Slightly increase velocity after activating many skills mid-race." + 201612 -> "Increase velocity after activating many skills mid-race." + 201621 -> "Slightly recover endurance after activating many skills late-race." + 201631 -> "Moderately increase performance when many runners share a sympathetic heart." + 201641 -> "Moderately increase performance when no other runners have the heart of a lone wolf." + 201651 -> "Slightly decrease wind resistance when following directly behind another runner." + 201661 -> "Slightly increase velocity when followed by another runner directly behind for a long time." + 201671 -> "Increase velocity when engaged in a challenge mid-race. (Dirt)" + 201672 -> "Slightly increase velocity when engaged in a challenge mid-race. (Dirt)" + 201681 -> "Prepare to aim for the front late-race. (Dirt)" + 201682 -> "Moderately prepare to aim for the front late-race. (Dirt)" + 201691 -> "Recover endurance when positioned toward the back upon approaching mid-race. (Late Surger)" + 201692 -> "Slightly recover endurance when positioned toward the back upon approaching mid-race. (Late Surger)" + 201701 -> "Increase velocity when well-positioned on a straight in the last spurt. (Medium)" + 201702 -> "Slightly increase velocity when well-positioned on a straight in the last spurt. (Medium)" + 201801 -> "Moderately decrease performance on firm ground." + 201902 -> "Slightly increase acceleration when positioned toward the front late-race. (Pace Chaser)" + 202002 -> "Slightly recover endurance when positioned toward the back mid-race. (Dirt)" + 202022 -> "Very slightly increase velocity for a medium duration when positioned toward the back mid-race. (End Closer)" + 202032 -> "Moderately increase velocity in the second half of the race, but also greatly increase fatigue sometimes." + 202051 -> "Attempt to gain an especially large lead and keep it until the finish. (Front Runner)" + 210011 -> "Burn bright with team spirit, increasing velocity in proportion to the total Speed of racing team members mid-race." + 210012 -> "Burn bright with team spirit, slightly increasing velocity in proportion to the total Speed of racing team members mid-race." + 210021 -> "Burn bright with team spirit, recovering endurance in proportion to the total Stamina of racing team members mid-race." + 210022 -> "Burn bright with team spirit, slightly recovering endurance in proportion to the total Stamina of racing team members mid-race." + 210031 -> "Burn bright with team spirit, increasing acceleration in proportion to the total Power of racing team members late-race." + 210032 -> "Burn bright with team spirit, slightly increasing acceleration in proportion to the total Power of racing team members late-race." + 210041 -> "Burn bright with team spirit, increasing vigor in proportion to the total Guts of racing team members late-race." + 210042 -> "Burn bright with team spirit, very slightly increasing vigor in proportion to the total Guts of racing team members late-race." + 210051 -> "Burn bright with team spirit, increasing strategic navigation for a medium duration in proportion to the total Wit of racing team members early-race." + 210052 -> "Burn bright with team spirit, slightly increasing strategic navigation for a medium duration in proportion to the total Wit of racing team members early-race." + 300011 -> "Moderately increase performance with the desire to race." + 300021 -> "Greatly increase performance with the same ambition of days past." + 300031 -> "Moderately increase performance in pursuit of that long sought-after scenery." + 300041 -> "Moderately decrease performance due to Trainer's anxiety." + 300051 -> "Greatly decrease velocity on a corner in the second half of the race due to Trainer's obvious anxiety." + 300061 -> "Increase velocity on the final straight due to a strong desire to cross the finish line carrying everyone's hopes and dreams." + 300071 -> "Moderately increase Silence Suzuka's performance thanks to the desire to see her running reach new heights." + 300081 -> "Moderately increase Silence Suzuka's performance thanks to a charm that guarantees a satisfying run." + 300091 -> "Moderately increase Silence Suzuka's performance through the happiness felt seeing a friend find their running style." + 300101 -> "Recover Silence Suzuka's endurance on a corner in the second half of the race through a friend's cheers of support." + 900011 -> "Slightly increase velocity and very minimally increase acceleration after passing another runner toward the front late-race." + 900021 -> "Slightly increase velocity when in the lead by a fair margin in the second half of the race." + 900031 -> "Moderately increase velocity when closing the gap to runners ahead on the final straight." + 900041 -> "Slightly increase acceleration when positioned toward the front on the final corner or later." + 900051 -> "Moderately increase velocity when just breaking out of the pack toward the front on the final straight." + 900061 -> "Moderately increase ability to break out of the pack when positioned toward the front with 200m remaining." + 900071 -> "Very slightly increase velocity steadily with a long spurt starting halfway through the race." + 900081 -> "Slightly increase velocity when positioned toward the front with 200m or less remaining." + 900091 -> "Very slightly swell with the determination to be number one when positioned toward the front in the second half of the race." + 900101 -> "Slightly increase acceleration when well-positioned upon approaching the final straight." + 900111 -> "Slightly increase velocity when passing another runner toward the back on the final straight." + 900121 -> "Slightly increase velocity on the final straight after passing another runner on the outside toward the back on the final corner or later." + 900131 -> "Slightly increase velocity when positioned toward the front on the final corner." + 900141 -> "Very slightly hang on to the advantage when positioned toward the front with energy to spare on the final straight." + 900151 -> "Slightly increase velocity when positioned toward the front and close to the runner ahead or behind on the final corner or later." + 900161 -> "Slightly increase velocity when passing another runner on the outside on the final corner or later. If the skill user engaged in a challenge mid-race, moderately increase velocity instead." + 900171 -> "Moderately increase velocity on the final straight after passing another runner 3 times late-race." + 900181 -> "Slightly increase velocity when passing another runner from midpack or further back on the final corner." + 900191 -> "Slightly increase velocity and navigation after passing another runner 2 times late-race." + 900201 -> "Slightly increase acceleration when in the lead on a corner late-race." + 900211 -> "Slightly bolt down the track when well-positioned or aiming for the front from midpack on a straight in the second half of the race." + 900221 -> "Slightly increase velocity when engaged in a challenge while well-positioned in the second half of the race." + 900231 -> "Slightly increase velocity when passing another runner toward the front on the final corner or later." + 900241 -> "Very slightly increase ability to break out of the pack on the straight after engaging in a challenge toward the front on the final corner or later." + 900251 -> "Very slightly increase velocity steadily and very minimally intimidate runners ahead when in midpack in the second half of the race." + 900261 -> "Slightly increase velocity when positioned toward the front after making it to the final straight without faltering." + 900271 -> "Slightly increase acceleration in an attempt to move up on a corner late-race." + 900281 -> "Very slightly kick forward when moderately tired while well-positioned halfway through the race." + 900301 -> "Slightly increase velocity on the final straight after passing another runner in the front part of the pack on the final corner or later." + 900321 -> "Slightly recover endurance and very slightly increase velocity for a moderate duration when sitting off the pace on a corner in the second half of the race." + 900351 -> "Slightly increase velocity when positioned toward the front on the final straight after engaging in a challenge on the final corner or later." + 900371 -> "Slightly increase velocity in a dash for the lead after running calmly and according to plan up until the final straight." + 900381 -> "Very slightly begin to advance when passing another runner while well-positioned around halfway through the race." + 900391 -> "Slightly increase velocity when engaged in a challenge on the final straight." + 900401 -> "Very slightly increase acceleration steadily when starting to make a move from midpack in the second half of the race." + 900411 -> "Slightly increase velocity when engaged in a challenge toward the front in the second half of the race." + 900451 -> "Moderately recover endurance when well-positioned mid-race." + 900461 -> "Become very slightly empowered to keep the advantage when positioned toward the front and close to the runner behind on a straight mid-race." + 900481 -> "Slightly increase velocity when pressured by or passing another runner while well-positioned on the final straight." + 900501 -> "Slightly increase velocity when moving up from midpack on the final corner or later." + 900521 -> "Slightly recover endurance with a glance at nearby runners when positioned toward the back on the final corner." + 900561 -> "Slightly clear a path forward depending on divination results when the way ahead is jammed late-race." + 900581 -> "Very slightly aim for the front when passing another runner from midpack or further back on a corner late-race." + 900591 -> "Having run the race calmly, slightly increase acceleration when making a move mid-race, or on a crucial corner late-race whilst in midpack." + 900601 -> "Slightly increase velocity when positioned 3rd and about to lose late-race." + 900611 -> "Moderately increase velocity in a true display of skill with 200m remaining after racing calmly." + 910011 -> "Slightly recover endurance after activating 2 skills mid-race." + 910031 -> "Moderately increase velocity on the final straight after being on the heels of another runner toward the front on the final corner or later." + 910041 -> "Slightly increase velocity when positioned toward the front in the second half of the race after recovering endurance with a skill." + 910061 -> "Very slightly control breathing and kick forward toward victory in the second half of the race after recovering endurance with skills at least 3 times." + 910111 -> "Moderately recover endurance when overtaken toward the back mid-race." + 910131 -> "Slightly increase velocity continuously when pressured by another runner and running out of energy toward the front on the final corner or later." + 910141 -> "Slightly increase acceleration when aiming for the front from midpack on the final corner." + 910171 -> "Slightly increase velocity when pressured by another runner in the front part of the pack on the final corner or later." + 910181 -> "Slightly increase velocity when starting to make a move from a position toward the front mid-race." + 910231 -> "Slightly increase velocity mid-race after staying well-positioned from the start of the race up until the second half." + 910241 -> "Slightly increase velocity when passing another runner toward the front on the final corner. If passing toward the back, slightly increase acceleration instead." + 910301 -> "Slightly drain endurance from runners ahead when well-positioned and pressured by another runner mid-race." + 910401 -> "Very slightly increase ability to break out of the pack when engaged in a challenge in midpack on the final corner." + 910451 -> "Very slightly increase ability to break out of the pack when well-positioned and close to the runner ahead on the final straight." + 910561 -> "Slightly increase velocity with a surge of fortune when pressured by another runner toward the back in the second half of the race." + _ -> "" + +// Get the skill group ID for a skill. +// If no skill matches the ID, the result is an invalid ID. +pub fun group(s: skill-id): skill-group-id + match s.game-id + 10071 -> Skill-group-id(1007) + 10081 -> Skill-group-id(1008) + 10091 -> Skill-group-id(1009) + 10111 -> Skill-group-id(1011) + 10141 -> Skill-group-id(1014) + 10181 -> Skill-group-id(1018) + 10241 -> Skill-group-id(1024) + 10271 -> Skill-group-id(1027) + 10321 -> Skill-group-id(1032) + 10351 -> Skill-group-id(1035) + 10411 -> Skill-group-id(1041) + 10451 -> Skill-group-id(1045) + 10521 -> Skill-group-id(1052) + 10561 -> Skill-group-id(1056) + 10601 -> Skill-group-id(1060) + 10611 -> Skill-group-id(1061) + 100011 -> Skill-group-id(10001) + 100021 -> Skill-group-id(10002) + 100031 -> Skill-group-id(10003) + 100041 -> Skill-group-id(10004) + 100051 -> Skill-group-id(10005) + 100061 -> Skill-group-id(10006) + 100071 -> Skill-group-id(10007) + 100081 -> Skill-group-id(10008) + 100091 -> Skill-group-id(10009) + 100101 -> Skill-group-id(10010) + 100111 -> Skill-group-id(10011) + 100121 -> Skill-group-id(10012) + 100131 -> Skill-group-id(10013) + 100141 -> Skill-group-id(10014) + 100151 -> Skill-group-id(10015) + 100161 -> Skill-group-id(10016) + 100171 -> Skill-group-id(10017) + 100181 -> Skill-group-id(10018) + 100191 -> Skill-group-id(10019) + 100201 -> Skill-group-id(10020) + 100211 -> Skill-group-id(10021) + 100221 -> Skill-group-id(10022) + 100231 -> Skill-group-id(10023) + 100241 -> Skill-group-id(10024) + 100251 -> Skill-group-id(10025) + 100261 -> Skill-group-id(10026) + 100271 -> Skill-group-id(10027) + 100281 -> Skill-group-id(10028) + 100301 -> Skill-group-id(10030) + 100321 -> Skill-group-id(10032) + 100351 -> Skill-group-id(10035) + 100371 -> Skill-group-id(10037) + 100381 -> Skill-group-id(10038) + 100391 -> Skill-group-id(10039) + 100401 -> Skill-group-id(10040) + 100411 -> Skill-group-id(10041) + 100451 -> Skill-group-id(10045) + 100461 -> Skill-group-id(10046) + 100481 -> Skill-group-id(10048) + 100501 -> Skill-group-id(10050) + 100521 -> Skill-group-id(10052) + 100561 -> Skill-group-id(10056) + 100581 -> Skill-group-id(10058) + 100591 -> Skill-group-id(10059) + 100601 -> Skill-group-id(10060) + 100611 -> Skill-group-id(10061) + 110011 -> Skill-group-id(11001) + 110031 -> Skill-group-id(11003) + 110041 -> Skill-group-id(11004) + 110061 -> Skill-group-id(11006) + 110111 -> Skill-group-id(11011) + 110131 -> Skill-group-id(11013) + 110141 -> Skill-group-id(11014) + 110171 -> Skill-group-id(11017) + 110181 -> Skill-group-id(11018) + 110231 -> Skill-group-id(11023) + 110241 -> Skill-group-id(11024) + 110301 -> Skill-group-id(11030) + 110401 -> Skill-group-id(11040) + 110451 -> Skill-group-id(11045) + 110561 -> Skill-group-id(11056) + 200011 -> Skill-group-id(20001) + 200012 -> Skill-group-id(20001) + 200013 -> Skill-group-id(20001) + 200021 -> Skill-group-id(20002) + 200022 -> Skill-group-id(20002) + 200023 -> Skill-group-id(20002) + 200031 -> Skill-group-id(20003) + 200032 -> Skill-group-id(20003) + 200033 -> Skill-group-id(20003) + 200041 -> Skill-group-id(20004) + 200042 -> Skill-group-id(20004) + 200043 -> Skill-group-id(20004) + 200051 -> Skill-group-id(20005) + 200052 -> Skill-group-id(20005) + 200053 -> Skill-group-id(20005) + 200061 -> Skill-group-id(20006) + 200062 -> Skill-group-id(20006) + 200063 -> Skill-group-id(20006) + 200064 -> Skill-group-id(20006) + 200071 -> Skill-group-id(20007) + 200072 -> Skill-group-id(20007) + 200073 -> Skill-group-id(20007) + 200081 -> Skill-group-id(20008) + 200082 -> Skill-group-id(20008) + 200083 -> Skill-group-id(20008) + 200091 -> Skill-group-id(20009) + 200092 -> Skill-group-id(20009) + 200093 -> Skill-group-id(20009) + 200101 -> Skill-group-id(20010) + 200102 -> Skill-group-id(20010) + 200103 -> Skill-group-id(20010) + 200111 -> Skill-group-id(20011) + 200112 -> Skill-group-id(20011) + 200113 -> Skill-group-id(20011) + 200121 -> Skill-group-id(20012) + 200122 -> Skill-group-id(20012) + 200123 -> Skill-group-id(20012) + 200131 -> Skill-group-id(20013) + 200132 -> Skill-group-id(20013) + 200133 -> Skill-group-id(20013) + 200141 -> Skill-group-id(20014) + 200142 -> Skill-group-id(20014) + 200143 -> Skill-group-id(20014) + 200151 -> Skill-group-id(20015) + 200152 -> Skill-group-id(20015) + 200153 -> Skill-group-id(20015) + 200161 -> Skill-group-id(20016) + 200162 -> Skill-group-id(20016) + 200163 -> Skill-group-id(20016) + 200171 -> Skill-group-id(20017) + 200172 -> Skill-group-id(20017) + 200173 -> Skill-group-id(20017) + 200181 -> Skill-group-id(20018) + 200182 -> Skill-group-id(20018) + 200183 -> Skill-group-id(20018) + 200191 -> Skill-group-id(20019) + 200192 -> Skill-group-id(20019) + 200193 -> Skill-group-id(20019) + 200194 -> Skill-group-id(20019) + 200201 -> Skill-group-id(20020) + 200202 -> Skill-group-id(20020) + 200203 -> Skill-group-id(20020) + 200211 -> Skill-group-id(20021) + 200212 -> Skill-group-id(20021) + 200221 -> Skill-group-id(20022) + 200222 -> Skill-group-id(20022) + 200231 -> Skill-group-id(20023) + 200232 -> Skill-group-id(20023) + 200233 -> Skill-group-id(20023) + 200241 -> Skill-group-id(20024) + 200242 -> Skill-group-id(20024) + 200251 -> Skill-group-id(20025) + 200252 -> Skill-group-id(20025) + 200253 -> Skill-group-id(20025) + 200261 -> Skill-group-id(20026) + 200262 -> Skill-group-id(20026) + 200263 -> Skill-group-id(20026) + 200271 -> Skill-group-id(20027) + 200272 -> Skill-group-id(20027) + 200281 -> Skill-group-id(20028) + 200282 -> Skill-group-id(20028) + 200283 -> Skill-group-id(20028) + 200291 -> Skill-group-id(20029) + 200292 -> Skill-group-id(20029) + 200301 -> Skill-group-id(20030) + 200302 -> Skill-group-id(20030) + 200311 -> Skill-group-id(20031) + 200321 -> Skill-group-id(20032) + 200331 -> Skill-group-id(20033) + 200332 -> Skill-group-id(20033) + 200333 -> Skill-group-id(20033) + 200341 -> Skill-group-id(20034) + 200342 -> Skill-group-id(20034) + 200343 -> Skill-group-id(20034) + 200351 -> Skill-group-id(20035) + 200352 -> Skill-group-id(20035) + 200353 -> Skill-group-id(20035) + 200361 -> Skill-group-id(20036) + 200362 -> Skill-group-id(20036) + 200371 -> Skill-group-id(20037) + 200372 -> Skill-group-id(20037) + 200381 -> Skill-group-id(20038) + 200382 -> Skill-group-id(20038) + 200391 -> Skill-group-id(20039) + 200401 -> Skill-group-id(20040) + 200411 -> Skill-group-id(20041) + 200421 -> Skill-group-id(20042) + 200431 -> Skill-group-id(20043) + 200432 -> Skill-group-id(20043) + 200433 -> Skill-group-id(20043) + 200441 -> Skill-group-id(20044) + 200442 -> Skill-group-id(20044) + 200451 -> Skill-group-id(20045) + 200452 -> Skill-group-id(20045) + 200461 -> Skill-group-id(20046) + 200462 -> Skill-group-id(20046) + 200471 -> Skill-group-id(20047) + 200472 -> Skill-group-id(20047) + 200481 -> Skill-group-id(20048) + 200482 -> Skill-group-id(20048) + 200491 -> Skill-group-id(20049) + 200492 -> Skill-group-id(20049) + 200501 -> Skill-group-id(20050) + 200502 -> Skill-group-id(20050) + 200511 -> Skill-group-id(20051) + 200512 -> Skill-group-id(20051) + 200521 -> Skill-group-id(20052) + 200531 -> Skill-group-id(20053) + 200532 -> Skill-group-id(20053) + 200541 -> Skill-group-id(20054) + 200542 -> Skill-group-id(20054) + 200551 -> Skill-group-id(20055) + 200552 -> Skill-group-id(20055) + 200561 -> Skill-group-id(20056) + 200562 -> Skill-group-id(20056) + 200571 -> Skill-group-id(20057) + 200572 -> Skill-group-id(20057) + 200581 -> Skill-group-id(20058) + 200582 -> Skill-group-id(20058) + 200591 -> Skill-group-id(20059) + 200592 -> Skill-group-id(20059) + 200601 -> Skill-group-id(20060) + 200602 -> Skill-group-id(20060) + 200611 -> Skill-group-id(20061) + 200612 -> Skill-group-id(20061) + 200621 -> Skill-group-id(20062) + 200622 -> Skill-group-id(20062) + 200631 -> Skill-group-id(20063) + 200632 -> Skill-group-id(20063) + 200641 -> Skill-group-id(20064) + 200642 -> Skill-group-id(20064) + 200651 -> Skill-group-id(20065) + 200652 -> Skill-group-id(20065) + 200662 -> Skill-group-id(20066) + 200671 -> Skill-group-id(20067) + 200672 -> Skill-group-id(20067) + 200681 -> Skill-group-id(20068) + 200682 -> Skill-group-id(20068) + 200691 -> Skill-group-id(20069) + 200692 -> Skill-group-id(20069) + 200701 -> Skill-group-id(20070) + 200702 -> Skill-group-id(20070) + 200711 -> Skill-group-id(20071) + 200712 -> Skill-group-id(20071) + 200721 -> Skill-group-id(20072) + 200722 -> Skill-group-id(20072) + 200731 -> Skill-group-id(20073) + 200732 -> Skill-group-id(20073) + 200741 -> Skill-group-id(20074) + 200742 -> Skill-group-id(20074) + 200751 -> Skill-group-id(20075) + 200752 -> Skill-group-id(20075) + 200761 -> Skill-group-id(20076) + 200762 -> Skill-group-id(20076) + 200771 -> Skill-group-id(20077) + 200772 -> Skill-group-id(20077) + 200781 -> Skill-group-id(20078) + 200791 -> Skill-group-id(20079) + 200801 -> Skill-group-id(20080) + 200811 -> Skill-group-id(20081) + 200821 -> Skill-group-id(20082) + 200831 -> Skill-group-id(20083) + 200841 -> Skill-group-id(20084) + 200851 -> Skill-group-id(20085) + 200861 -> Skill-group-id(20086) + 200871 -> Skill-group-id(20087) + 200881 -> Skill-group-id(20088) + 200891 -> Skill-group-id(20089) + 200901 -> Skill-group-id(20090) + 200911 -> Skill-group-id(20091) + 200921 -> Skill-group-id(20092) + 200931 -> Skill-group-id(20093) + 200941 -> Skill-group-id(20094) + 200951 -> Skill-group-id(20095) + 200952 -> Skill-group-id(20095) + 200953 -> Skill-group-id(20095) + 200961 -> Skill-group-id(20096) + 200962 -> Skill-group-id(20096) + 200971 -> Skill-group-id(20097) + 200972 -> Skill-group-id(20097) + 200981 -> Skill-group-id(20098) + 200982 -> Skill-group-id(20098) + 200991 -> Skill-group-id(20099) + 200992 -> Skill-group-id(20099) + 201001 -> Skill-group-id(20100) + 201002 -> Skill-group-id(20100) + 201011 -> Skill-group-id(20101) + 201012 -> Skill-group-id(20101) + 201021 -> Skill-group-id(20102) + 201022 -> Skill-group-id(20102) + 201031 -> Skill-group-id(20103) + 201032 -> Skill-group-id(20103) + 201041 -> Skill-group-id(20104) + 201042 -> Skill-group-id(20104) + 201051 -> Skill-group-id(20105) + 201052 -> Skill-group-id(20105) + 201061 -> Skill-group-id(20106) + 201062 -> Skill-group-id(20106) + 201071 -> Skill-group-id(20107) + 201072 -> Skill-group-id(20107) + 201081 -> Skill-group-id(20108) + 201082 -> Skill-group-id(20108) + 201091 -> Skill-group-id(20109) + 201092 -> Skill-group-id(20109) + 201101 -> Skill-group-id(20110) + 201102 -> Skill-group-id(20110) + 201111 -> Skill-group-id(20111) + 201112 -> Skill-group-id(20111) + 201121 -> Skill-group-id(20112) + 201122 -> Skill-group-id(20112) + 201131 -> Skill-group-id(20113) + 201132 -> Skill-group-id(20113) + 201141 -> Skill-group-id(20114) + 201142 -> Skill-group-id(20114) + 201151 -> Skill-group-id(20115) + 201152 -> Skill-group-id(20115) + 201161 -> Skill-group-id(20116) + 201162 -> Skill-group-id(20116) + 201171 -> Skill-group-id(20117) + 201172 -> Skill-group-id(20117) + 201181 -> Skill-group-id(20118) + 201182 -> Skill-group-id(20118) + 201191 -> Skill-group-id(20119) + 201192 -> Skill-group-id(20119) + 201201 -> Skill-group-id(20120) + 201202 -> Skill-group-id(20120) + 201211 -> Skill-group-id(20121) + 201212 -> Skill-group-id(20121) + 201221 -> Skill-group-id(20122) + 201222 -> Skill-group-id(20122) + 201231 -> Skill-group-id(20123) + 201232 -> Skill-group-id(20123) + 201241 -> Skill-group-id(20124) + 201242 -> Skill-group-id(20124) + 201251 -> Skill-group-id(20125) + 201252 -> Skill-group-id(20125) + 201261 -> Skill-group-id(20126) + 201262 -> Skill-group-id(20126) + 201272 -> Skill-group-id(20127) + 201281 -> Skill-group-id(20128) + 201282 -> Skill-group-id(20128) + 201291 -> Skill-group-id(20129) + 201292 -> Skill-group-id(20129) + 201302 -> Skill-group-id(20130) + 201311 -> Skill-group-id(20131) + 201312 -> Skill-group-id(20131) + 201321 -> Skill-group-id(20132) + 201322 -> Skill-group-id(20132) + 201331 -> Skill-group-id(20133) + 201332 -> Skill-group-id(20133) + 201341 -> Skill-group-id(20134) + 201342 -> Skill-group-id(20134) + 201351 -> Skill-group-id(20135) + 201352 -> Skill-group-id(20135) + 201361 -> Skill-group-id(20136) + 201362 -> Skill-group-id(20136) + 201371 -> Skill-group-id(20137) + 201372 -> Skill-group-id(20137) + 201381 -> Skill-group-id(20138) + 201382 -> Skill-group-id(20138) + 201391 -> Skill-group-id(20139) + 201392 -> Skill-group-id(20139) + 201401 -> Skill-group-id(20140) + 201402 -> Skill-group-id(20140) + 201411 -> Skill-group-id(20141) + 201412 -> Skill-group-id(20141) + 201421 -> Skill-group-id(20142) + 201422 -> Skill-group-id(20142) + 201431 -> Skill-group-id(20143) + 201432 -> Skill-group-id(20143) + 201441 -> Skill-group-id(20144) + 201442 -> Skill-group-id(20144) + 201451 -> Skill-group-id(20145) + 201452 -> Skill-group-id(20145) + 201461 -> Skill-group-id(20146) + 201462 -> Skill-group-id(20146) + 201471 -> Skill-group-id(20147) + 201472 -> Skill-group-id(20147) + 201481 -> Skill-group-id(20148) + 201482 -> Skill-group-id(20148) + 201491 -> Skill-group-id(20149) + 201492 -> Skill-group-id(20149) + 201501 -> Skill-group-id(20150) + 201502 -> Skill-group-id(20150) + 201511 -> Skill-group-id(20151) + 201512 -> Skill-group-id(20151) + 201521 -> Skill-group-id(20152) + 201522 -> Skill-group-id(20152) + 201531 -> Skill-group-id(20153) + 201532 -> Skill-group-id(20153) + 201541 -> Skill-group-id(20154) + 201542 -> Skill-group-id(20154) + 201551 -> Skill-group-id(20155) + 201552 -> Skill-group-id(20155) + 201561 -> Skill-group-id(20156) + 201562 -> Skill-group-id(20156) + 201571 -> Skill-group-id(20157) + 201581 -> Skill-group-id(20158) + 201591 -> Skill-group-id(20159) + 201592 -> Skill-group-id(20159) + 201601 -> Skill-group-id(20160) + 201611 -> Skill-group-id(20161) + 201612 -> Skill-group-id(20161) + 201621 -> Skill-group-id(20162) + 201631 -> Skill-group-id(20163) + 201641 -> Skill-group-id(20164) + 201651 -> Skill-group-id(20165) + 201661 -> Skill-group-id(20166) + 201671 -> Skill-group-id(20167) + 201672 -> Skill-group-id(20167) + 201681 -> Skill-group-id(20168) + 201682 -> Skill-group-id(20168) + 201691 -> Skill-group-id(20169) + 201692 -> Skill-group-id(20169) + 201701 -> Skill-group-id(20170) + 201702 -> Skill-group-id(20170) + 201801 -> Skill-group-id(20180) + 201902 -> Skill-group-id(20190) + 202002 -> Skill-group-id(20200) + 202022 -> Skill-group-id(20202) + 202032 -> Skill-group-id(20203) + 202051 -> Skill-group-id(20205) + 210011 -> Skill-group-id(21001) + 210012 -> Skill-group-id(21001) + 210021 -> Skill-group-id(21002) + 210022 -> Skill-group-id(21002) + 210031 -> Skill-group-id(21003) + 210032 -> Skill-group-id(21003) + 210041 -> Skill-group-id(21004) + 210042 -> Skill-group-id(21004) + 210051 -> Skill-group-id(21005) + 210052 -> Skill-group-id(21005) + 300011 -> Skill-group-id(30001) + 300021 -> Skill-group-id(30002) + 300031 -> Skill-group-id(30003) + 300041 -> Skill-group-id(30004) + 300051 -> Skill-group-id(30005) + 300061 -> Skill-group-id(30006) + 300071 -> Skill-group-id(30007) + 300081 -> Skill-group-id(30008) + 300091 -> Skill-group-id(30009) + 300101 -> Skill-group-id(30010) + 900011 -> Skill-group-id(10001) + 900021 -> Skill-group-id(10002) + 900031 -> Skill-group-id(10003) + 900041 -> Skill-group-id(10004) + 900051 -> Skill-group-id(10005) + 900061 -> Skill-group-id(10006) + 900071 -> Skill-group-id(10007) + 900081 -> Skill-group-id(10008) + 900091 -> Skill-group-id(10009) + 900101 -> Skill-group-id(10010) + 900111 -> Skill-group-id(10011) + 900121 -> Skill-group-id(10012) + 900131 -> Skill-group-id(10013) + 900141 -> Skill-group-id(10014) + 900151 -> Skill-group-id(10015) + 900161 -> Skill-group-id(10016) + 900171 -> Skill-group-id(10017) + 900181 -> Skill-group-id(10018) + 900191 -> Skill-group-id(10019) + 900201 -> Skill-group-id(10020) + 900211 -> Skill-group-id(10021) + 900221 -> Skill-group-id(10022) + 900231 -> Skill-group-id(10023) + 900241 -> Skill-group-id(10024) + 900251 -> Skill-group-id(10025) + 900261 -> Skill-group-id(10026) + 900271 -> Skill-group-id(10027) + 900281 -> Skill-group-id(10028) + 900301 -> Skill-group-id(10030) + 900321 -> Skill-group-id(10032) + 900351 -> Skill-group-id(10035) + 900371 -> Skill-group-id(10037) + 900381 -> Skill-group-id(10038) + 900391 -> Skill-group-id(10039) + 900401 -> Skill-group-id(10040) + 900411 -> Skill-group-id(10041) + 900451 -> Skill-group-id(10045) + 900461 -> Skill-group-id(10046) + 900481 -> Skill-group-id(10048) + 900501 -> Skill-group-id(10050) + 900521 -> Skill-group-id(10052) + 900561 -> Skill-group-id(10056) + 900581 -> Skill-group-id(10058) + 900591 -> Skill-group-id(10059) + 900601 -> Skill-group-id(10060) + 900611 -> Skill-group-id(10061) + 910011 -> Skill-group-id(11001) + 910031 -> Skill-group-id(11003) + 910041 -> Skill-group-id(11004) + 910061 -> Skill-group-id(11006) + 910111 -> Skill-group-id(11011) + 910131 -> Skill-group-id(11013) + 910141 -> Skill-group-id(11014) + 910171 -> Skill-group-id(11017) + 910181 -> Skill-group-id(11018) + 910231 -> Skill-group-id(11023) + 910241 -> Skill-group-id(11024) + 910301 -> Skill-group-id(11030) + 910401 -> Skill-group-id(11040) + 910451 -> Skill-group-id(11045) + 910561 -> Skill-group-id(11056) + _ -> Skill-group-id(0) + +// Get the rarity of a skill. +// If no skill matches the ID, the result is Common. +pub fun rarity(s: skill-id): rarity + match s.game-id + 10071 -> Unique-Low + 10081 -> Unique-Low + 10091 -> Unique-Low + 10111 -> Unique-Low + 10141 -> Unique-Low + 10181 -> Unique-Low + 10241 -> Unique-Low + 10271 -> Unique-Low + 10321 -> Unique-Low + 10351 -> Unique-Low + 10411 -> Unique-Low + 10451 -> Unique-Low + 10521 -> Unique-Low + 10561 -> Unique-Low + 10601 -> Unique-Low + 10611 -> Unique-Low + 100011 -> Unique + 100021 -> Unique + 100031 -> Unique + 100041 -> Unique + 100051 -> Unique + 100061 -> Unique + 100071 -> Unique-Upgraded + 100081 -> Unique-Upgraded + 100091 -> Unique-Upgraded + 100101 -> Unique + 100111 -> Unique-Upgraded + 100121 -> Unique + 100131 -> Unique + 100141 -> Unique-Upgraded + 100151 -> Unique + 100161 -> Unique + 100171 -> Unique + 100181 -> Unique-Upgraded + 100191 -> Unique + 100201 -> Unique + 100211 -> Unique + 100221 -> Unique + 100231 -> Unique + 100241 -> Unique-Upgraded + 100251 -> Unique + 100261 -> Unique + 100271 -> Unique-Upgraded + 100281 -> Unique + 100301 -> Unique + 100321 -> Unique-Upgraded + 100351 -> Unique-Upgraded + 100371 -> Unique + 100381 -> Unique + 100391 -> Unique + 100401 -> Unique + 100411 -> Unique-Upgraded + 100451 -> Unique-Upgraded + 100461 -> Unique + 100481 -> Unique + 100501 -> Unique + 100521 -> Unique-Upgraded + 100561 -> Unique-Upgraded + 100581 -> Unique + 100591 -> Unique + 100601 -> Unique-Upgraded + 100611 -> Unique-Upgraded + 110011 -> Unique + 110031 -> Unique + 110041 -> Unique + 110061 -> Unique + 110111 -> Unique + 110131 -> Unique + 110141 -> Unique + 110171 -> Unique + 110181 -> Unique + 110231 -> Unique + 110241 -> Unique + 110301 -> Unique + 110401 -> Unique + 110451 -> Unique + 110561 -> Unique + 200011 -> Common + 200012 -> Common + 200013 -> Common + 200021 -> Common + 200022 -> Common + 200023 -> Common + 200031 -> Common + 200032 -> Common + 200033 -> Common + 200041 -> Common + 200042 -> Common + 200043 -> Common + 200051 -> Common + 200052 -> Common + 200053 -> Common + 200061 -> Common + 200062 -> Common + 200063 -> Common + 200064 -> Rare + 200071 -> Common + 200072 -> Common + 200073 -> Common + 200081 -> Common + 200082 -> Common + 200083 -> Common + 200091 -> Common + 200092 -> Common + 200093 -> Common + 200101 -> Common + 200102 -> Common + 200103 -> Common + 200111 -> Common + 200112 -> Common + 200113 -> Common + 200121 -> Common + 200122 -> Common + 200123 -> Common + 200131 -> Common + 200132 -> Common + 200133 -> Common + 200141 -> Common + 200142 -> Common + 200143 -> Common + 200151 -> Common + 200152 -> Common + 200153 -> Common + 200161 -> Common + 200162 -> Common + 200163 -> Common + 200171 -> Common + 200172 -> Common + 200173 -> Common + 200181 -> Common + 200182 -> Common + 200183 -> Common + 200191 -> Common + 200192 -> Common + 200193 -> Common + 200194 -> Rare + 200201 -> Common + 200202 -> Common + 200203 -> Common + 200211 -> Common + 200212 -> Common + 200221 -> Common + 200222 -> Common + 200231 -> Common + 200232 -> Common + 200233 -> Common + 200241 -> Common + 200242 -> Common + 200251 -> Common + 200252 -> Common + 200253 -> Common + 200261 -> Common + 200262 -> Common + 200263 -> Common + 200271 -> Common + 200272 -> Common + 200281 -> Common + 200282 -> Common + 200283 -> Common + 200291 -> Common + 200292 -> Common + 200301 -> Common + 200302 -> Common + 200311 -> Common + 200321 -> Common + 200331 -> Rare + 200332 -> Common + 200333 -> Common + 200341 -> Rare + 200342 -> Common + 200343 -> Common + 200351 -> Rare + 200352 -> Common + 200353 -> Common + 200361 -> Rare + 200362 -> Common + 200371 -> Rare + 200372 -> Common + 200381 -> Rare + 200382 -> Common + 200391 -> Common + 200401 -> Common + 200411 -> Common + 200421 -> Common + 200431 -> Rare + 200432 -> Common + 200433 -> Common + 200441 -> Rare + 200442 -> Common + 200451 -> Rare + 200452 -> Common + 200461 -> Rare + 200462 -> Common + 200471 -> Rare + 200472 -> Common + 200481 -> Rare + 200482 -> Common + 200491 -> Rare + 200492 -> Common + 200501 -> Rare + 200502 -> Common + 200511 -> Rare + 200512 -> Common + 200521 -> Common + 200531 -> Rare + 200532 -> Common + 200541 -> Rare + 200542 -> Common + 200551 -> Rare + 200552 -> Common + 200561 -> Rare + 200562 -> Common + 200571 -> Rare + 200572 -> Common + 200581 -> Rare + 200582 -> Common + 200591 -> Rare + 200592 -> Common + 200601 -> Rare + 200602 -> Common + 200611 -> Rare + 200612 -> Common + 200621 -> Rare + 200622 -> Common + 200631 -> Rare + 200632 -> Common + 200641 -> Rare + 200642 -> Common + 200651 -> Rare + 200652 -> Common + 200662 -> Common + 200671 -> Rare + 200672 -> Common + 200681 -> Rare + 200682 -> Common + 200691 -> Rare + 200692 -> Common + 200701 -> Rare + 200702 -> Common + 200711 -> Rare + 200712 -> Common + 200721 -> Rare + 200722 -> Common + 200731 -> Rare + 200732 -> Common + 200741 -> Rare + 200742 -> Common + 200751 -> Rare + 200752 -> Common + 200761 -> Rare + 200762 -> Common + 200771 -> Common + 200772 -> Rare + 200781 -> Common + 200791 -> Common + 200801 -> Common + 200811 -> Common + 200821 -> Common + 200831 -> Common + 200841 -> Common + 200851 -> Common + 200861 -> Common + 200871 -> Common + 200881 -> Common + 200891 -> Common + 200901 -> Common + 200911 -> Common + 200921 -> Common + 200931 -> Common + 200941 -> Common + 200951 -> Common + 200952 -> Common + 200953 -> Common + 200961 -> Common + 200962 -> Common + 200971 -> Common + 200972 -> Common + 200981 -> Rare + 200982 -> Common + 200991 -> Rare + 200992 -> Common + 201001 -> Rare + 201002 -> Common + 201011 -> Rare + 201012 -> Common + 201021 -> Rare + 201022 -> Common + 201031 -> Common + 201032 -> Common + 201041 -> Common + 201042 -> Common + 201051 -> Rare + 201052 -> Common + 201061 -> Rare + 201062 -> Common + 201071 -> Rare + 201072 -> Common + 201081 -> Rare + 201082 -> Common + 201091 -> Rare + 201092 -> Common + 201101 -> Common + 201102 -> Common + 201111 -> Common + 201112 -> Common + 201121 -> Rare + 201122 -> Common + 201131 -> Rare + 201132 -> Common + 201141 -> Rare + 201142 -> Common + 201151 -> Rare + 201152 -> Common + 201161 -> Rare + 201162 -> Common + 201171 -> Common + 201172 -> Common + 201181 -> Common + 201182 -> Common + 201191 -> Rare + 201192 -> Common + 201201 -> Rare + 201202 -> Common + 201211 -> Rare + 201212 -> Common + 201221 -> Rare + 201222 -> Common + 201231 -> Rare + 201232 -> Common + 201241 -> Common + 201242 -> Common + 201251 -> Common + 201252 -> Common + 201261 -> Rare + 201262 -> Common + 201272 -> Common + 201281 -> Rare + 201282 -> Common + 201291 -> Rare + 201292 -> Common + 201302 -> Common + 201311 -> Common + 201312 -> Common + 201321 -> Common + 201322 -> Common + 201331 -> Rare + 201332 -> Common + 201341 -> Rare + 201342 -> Common + 201351 -> Rare + 201352 -> Common + 201361 -> Rare + 201362 -> Common + 201371 -> Rare + 201372 -> Common + 201381 -> Common + 201382 -> Common + 201391 -> Common + 201392 -> Common + 201401 -> Rare + 201402 -> Common + 201411 -> Rare + 201412 -> Common + 201421 -> Rare + 201422 -> Common + 201431 -> Rare + 201432 -> Common + 201441 -> Rare + 201442 -> Common + 201451 -> Common + 201452 -> Common + 201461 -> Common + 201462 -> Common + 201471 -> Rare + 201472 -> Common + 201481 -> Rare + 201482 -> Common + 201491 -> Rare + 201492 -> Common + 201501 -> Rare + 201502 -> Common + 201511 -> Rare + 201512 -> Common + 201521 -> Common + 201522 -> Common + 201531 -> Common + 201532 -> Common + 201541 -> Common + 201542 -> Common + 201551 -> Common + 201552 -> Common + 201561 -> Rare + 201562 -> Common + 201571 -> Common + 201581 -> Common + 201591 -> Common + 201592 -> Rare + 201601 -> Common + 201611 -> Common + 201612 -> Rare + 201621 -> Common + 201631 -> Common + 201641 -> Common + 201651 -> Common + 201661 -> Common + 201671 -> Rare + 201672 -> Common + 201681 -> Rare + 201682 -> Common + 201691 -> Rare + 201692 -> Common + 201701 -> Rare + 201702 -> Common + 201801 -> Common + 201902 -> Common + 202002 -> Common + 202022 -> Common + 202032 -> Common + 202051 -> Rare + 210011 -> Rare + 210012 -> Common + 210021 -> Rare + 210022 -> Common + 210031 -> Rare + 210032 -> Common + 210041 -> Rare + 210042 -> Common + 210051 -> Rare + 210052 -> Common + 300011 -> Common + 300021 -> Rare + 300031 -> Common + 300041 -> Common + 300051 -> Rare + 300061 -> Rare + 300071 -> Common + 300081 -> Common + 300091 -> Common + 300101 -> Rare + 900011 -> Common + 900021 -> Common + 900031 -> Common + 900041 -> Common + 900051 -> Common + 900061 -> Common + 900071 -> Common + 900081 -> Common + 900091 -> Common + 900101 -> Common + 900111 -> Common + 900121 -> Common + 900131 -> Common + 900141 -> Common + 900151 -> Common + 900161 -> Common + 900171 -> Common + 900181 -> Common + 900191 -> Common + 900201 -> Common + 900211 -> Common + 900221 -> Common + 900231 -> Common + 900241 -> Common + 900251 -> Common + 900261 -> Common + 900271 -> Common + 900281 -> Common + 900301 -> Common + 900321 -> Common + 900351 -> Common + 900371 -> Common + 900381 -> Common + 900391 -> Common + 900401 -> Common + 900411 -> Common + 900451 -> Common + 900461 -> Common + 900481 -> Common + 900501 -> Common + 900521 -> Common + 900561 -> Common + 900581 -> Common + 900591 -> Common + 900601 -> Common + 900611 -> Common + 910011 -> Common + 910031 -> Common + 910041 -> Common + 910061 -> Common + 910111 -> Common + 910131 -> Common + 910141 -> Common + 910171 -> Common + 910181 -> Common + 910231 -> Common + 910241 -> Common + 910301 -> Common + 910401 -> Common + 910451 -> Common + 910561 -> Common + _ -> Common + +// Get the group rate of a skill. +// If no skill matches the ID, the result is 0. +pub fun group-rate(s: skill-id): int + match s.game-id + 10071 -> 1 + 10081 -> 1 + 10091 -> 1 + 10111 -> 1 + 10141 -> 1 + 10181 -> 1 + 10241 -> 1 + 10271 -> 1 + 10321 -> 1 + 10351 -> 1 + 10411 -> 1 + 10451 -> 1 + 10521 -> 1 + 10561 -> 1 + 10601 -> 1 + 10611 -> 1 + 100011 -> 1 + 100021 -> 1 + 100031 -> 1 + 100041 -> 1 + 100051 -> 1 + 100061 -> 1 + 100071 -> 1 + 100081 -> 1 + 100091 -> 1 + 100101 -> 1 + 100111 -> 1 + 100121 -> 1 + 100131 -> 1 + 100141 -> 1 + 100151 -> 1 + 100161 -> 1 + 100171 -> 1 + 100181 -> 1 + 100191 -> 1 + 100201 -> 1 + 100211 -> 1 + 100221 -> 1 + 100231 -> 1 + 100241 -> 1 + 100251 -> 1 + 100261 -> 1 + 100271 -> 1 + 100281 -> 1 + 100301 -> 1 + 100321 -> 1 + 100351 -> 1 + 100371 -> 1 + 100381 -> 1 + 100391 -> 1 + 100401 -> 1 + 100411 -> 1 + 100451 -> 1 + 100461 -> 1 + 100481 -> 1 + 100501 -> 1 + 100521 -> 1 + 100561 -> 1 + 100581 -> 1 + 100591 -> 1 + 100601 -> 1 + 100611 -> 1 + 110011 -> 1 + 110031 -> 1 + 110041 -> 1 + 110061 -> 1 + 110111 -> 1 + 110131 -> 1 + 110141 -> 1 + 110171 -> 1 + 110181 -> 1 + 110231 -> 1 + 110241 -> 1 + 110301 -> 1 + 110401 -> 1 + 110451 -> 1 + 110561 -> 1 + 200011 -> 2 + 200012 -> 1 + 200013 -> -1 + 200021 -> 2 + 200022 -> 1 + 200023 -> -1 + 200031 -> 2 + 200032 -> 1 + 200033 -> -1 + 200041 -> 2 + 200042 -> 1 + 200043 -> -1 + 200051 -> 2 + 200052 -> 1 + 200053 -> -1 + 200061 -> 2 + 200062 -> 1 + 200063 -> -1 + 200064 -> 3 + 200071 -> 2 + 200072 -> 1 + 200073 -> -1 + 200081 -> 2 + 200082 -> 1 + 200083 -> -1 + 200091 -> 2 + 200092 -> 1 + 200093 -> -1 + 200101 -> 2 + 200102 -> 1 + 200103 -> -1 + 200111 -> 2 + 200112 -> 1 + 200113 -> -1 + 200121 -> 2 + 200122 -> 1 + 200123 -> -1 + 200131 -> 2 + 200132 -> 1 + 200133 -> -1 + 200141 -> 2 + 200142 -> 1 + 200143 -> -1 + 200151 -> 2 + 200152 -> 1 + 200153 -> -1 + 200161 -> 2 + 200162 -> 1 + 200163 -> -1 + 200171 -> 2 + 200172 -> 1 + 200173 -> -1 + 200181 -> 2 + 200182 -> 1 + 200183 -> -1 + 200191 -> 2 + 200192 -> 1 + 200193 -> -1 + 200194 -> 3 + 200201 -> 2 + 200202 -> 1 + 200203 -> -1 + 200211 -> 2 + 200212 -> 1 + 200221 -> 2 + 200222 -> 1 + 200231 -> 2 + 200232 -> 1 + 200233 -> -1 + 200241 -> 2 + 200242 -> 1 + 200251 -> 2 + 200252 -> 1 + 200253 -> -1 + 200261 -> 2 + 200262 -> 1 + 200263 -> -1 + 200271 -> 2 + 200272 -> 1 + 200281 -> 2 + 200282 -> 1 + 200283 -> -1 + 200291 -> 2 + 200292 -> 1 + 200301 -> 2 + 200302 -> 1 + 200311 -> -1 + 200321 -> -1 + 200331 -> 2 + 200332 -> 1 + 200333 -> -1 + 200341 -> 2 + 200342 -> 1 + 200343 -> -1 + 200351 -> 2 + 200352 -> 1 + 200353 -> -1 + 200361 -> 2 + 200362 -> 1 + 200371 -> 2 + 200372 -> 1 + 200381 -> 2 + 200382 -> 1 + 200391 -> -1 + 200401 -> -1 + 200411 -> -1 + 200421 -> -1 + 200431 -> 2 + 200432 -> 1 + 200433 -> -1 + 200441 -> 2 + 200442 -> 1 + 200451 -> 2 + 200452 -> 1 + 200461 -> 2 + 200462 -> 1 + 200471 -> 2 + 200472 -> 1 + 200481 -> 2 + 200482 -> 1 + 200491 -> 2 + 200492 -> 1 + 200501 -> 2 + 200502 -> 1 + 200511 -> 2 + 200512 -> 1 + 200521 -> -1 + 200531 -> 2 + 200532 -> 1 + 200541 -> 2 + 200542 -> 1 + 200551 -> 2 + 200552 -> 1 + 200561 -> 2 + 200562 -> 1 + 200571 -> 2 + 200572 -> 1 + 200581 -> 2 + 200582 -> 1 + 200591 -> 2 + 200592 -> 1 + 200601 -> 2 + 200602 -> 1 + 200611 -> 2 + 200612 -> 1 + 200621 -> 2 + 200622 -> 1 + 200631 -> 2 + 200632 -> 1 + 200641 -> 2 + 200642 -> 1 + 200651 -> 2 + 200652 -> 1 + 200662 -> 1 + 200671 -> 2 + 200672 -> 1 + 200681 -> 2 + 200682 -> 1 + 200691 -> 2 + 200692 -> 1 + 200701 -> 2 + 200702 -> 1 + 200711 -> 2 + 200712 -> 1 + 200721 -> 2 + 200722 -> 1 + 200731 -> 2 + 200732 -> 1 + 200741 -> 2 + 200742 -> 1 + 200751 -> 2 + 200752 -> 1 + 200761 -> 2 + 200762 -> 1 + 200771 -> 1 + 200772 -> 2 + 200781 -> 1 + 200791 -> 1 + 200801 -> 1 + 200811 -> 1 + 200821 -> 1 + 200831 -> 1 + 200841 -> 1 + 200851 -> 1 + 200861 -> 1 + 200871 -> 1 + 200881 -> 1 + 200891 -> 1 + 200901 -> 1 + 200911 -> 1 + 200921 -> 1 + 200931 -> 1 + 200941 -> 1 + 200951 -> 2 + 200952 -> 1 + 200953 -> -1 + 200961 -> 2 + 200962 -> 1 + 200971 -> 2 + 200972 -> 1 + 200981 -> 2 + 200982 -> 1 + 200991 -> 2 + 200992 -> 1 + 201001 -> 2 + 201002 -> 1 + 201011 -> 2 + 201012 -> 1 + 201021 -> 2 + 201022 -> 1 + 201031 -> 2 + 201032 -> 1 + 201041 -> 2 + 201042 -> 1 + 201051 -> 2 + 201052 -> 1 + 201061 -> 2 + 201062 -> 1 + 201071 -> 2 + 201072 -> 1 + 201081 -> 2 + 201082 -> 1 + 201091 -> 2 + 201092 -> 1 + 201101 -> 2 + 201102 -> 1 + 201111 -> 2 + 201112 -> 1 + 201121 -> 2 + 201122 -> 1 + 201131 -> 2 + 201132 -> 1 + 201141 -> 2 + 201142 -> 1 + 201151 -> 2 + 201152 -> 1 + 201161 -> 2 + 201162 -> 1 + 201171 -> 2 + 201172 -> 1 + 201181 -> 2 + 201182 -> 1 + 201191 -> 2 + 201192 -> 1 + 201201 -> 2 + 201202 -> 1 + 201211 -> 2 + 201212 -> 1 + 201221 -> 2 + 201222 -> 1 + 201231 -> 2 + 201232 -> 1 + 201241 -> 2 + 201242 -> 1 + 201251 -> 2 + 201252 -> 1 + 201261 -> 2 + 201262 -> 1 + 201272 -> 1 + 201281 -> 2 + 201282 -> 1 + 201291 -> 2 + 201292 -> 1 + 201302 -> 1 + 201311 -> 2 + 201312 -> 1 + 201321 -> 2 + 201322 -> 1 + 201331 -> 2 + 201332 -> 1 + 201341 -> 2 + 201342 -> 1 + 201351 -> 2 + 201352 -> 1 + 201361 -> 2 + 201362 -> 1 + 201371 -> 2 + 201372 -> 1 + 201381 -> 2 + 201382 -> 1 + 201391 -> 2 + 201392 -> 1 + 201401 -> 2 + 201402 -> 1 + 201411 -> 2 + 201412 -> 1 + 201421 -> 2 + 201422 -> 1 + 201431 -> 2 + 201432 -> 1 + 201441 -> 2 + 201442 -> 1 + 201451 -> 2 + 201452 -> 1 + 201461 -> 2 + 201462 -> 1 + 201471 -> 2 + 201472 -> 1 + 201481 -> 2 + 201482 -> 1 + 201491 -> 2 + 201492 -> 1 + 201501 -> 2 + 201502 -> 1 + 201511 -> 2 + 201512 -> 1 + 201521 -> 2 + 201522 -> 1 + 201531 -> 2 + 201532 -> 1 + 201541 -> 2 + 201542 -> 1 + 201551 -> 2 + 201552 -> 1 + 201561 -> 2 + 201562 -> 1 + 201571 -> 1 + 201581 -> 1 + 201591 -> 1 + 201592 -> 2 + 201601 -> 1 + 201611 -> 1 + 201612 -> 2 + 201621 -> 1 + 201631 -> 1 + 201641 -> 1 + 201651 -> 1 + 201661 -> 1 + 201671 -> 2 + 201672 -> 1 + 201681 -> 2 + 201682 -> 1 + 201691 -> 2 + 201692 -> 1 + 201701 -> 2 + 201702 -> 1 + 201801 -> -1 + 201902 -> 1 + 202002 -> 1 + 202022 -> 1 + 202032 -> 1 + 202051 -> 2 + 210011 -> 2 + 210012 -> 1 + 210021 -> 2 + 210022 -> 1 + 210031 -> 2 + 210032 -> 1 + 210041 -> 2 + 210042 -> 1 + 210051 -> 2 + 210052 -> 1 + 300011 -> 1 + 300021 -> 1 + 300031 -> 1 + 300041 -> 1 + 300051 -> 1 + 300061 -> 1 + 300071 -> 1 + 300081 -> 1 + 300091 -> 1 + 300101 -> 1 + 900011 -> 2 + 900021 -> 2 + 900031 -> 2 + 900041 -> 2 + 900051 -> 2 + 900061 -> 2 + 900071 -> 2 + 900081 -> 2 + 900091 -> 2 + 900101 -> 2 + 900111 -> 2 + 900121 -> 2 + 900131 -> 2 + 900141 -> 2 + 900151 -> 2 + 900161 -> 2 + 900171 -> 2 + 900181 -> 2 + 900191 -> 2 + 900201 -> 2 + 900211 -> 2 + 900221 -> 2 + 900231 -> 2 + 900241 -> 2 + 900251 -> 2 + 900261 -> 2 + 900271 -> 2 + 900281 -> 2 + 900301 -> 2 + 900321 -> 2 + 900351 -> 2 + 900371 -> 2 + 900381 -> 2 + 900391 -> 2 + 900401 -> 2 + 900411 -> 2 + 900451 -> 2 + 900461 -> 2 + 900481 -> 2 + 900501 -> 2 + 900521 -> 2 + 900561 -> 2 + 900581 -> 2 + 900591 -> 2 + 900601 -> 2 + 900611 -> 2 + 910011 -> 2 + 910031 -> 2 + 910041 -> 2 + 910061 -> 2 + 910111 -> 2 + 910131 -> 2 + 910141 -> 2 + 910171 -> 2 + 910181 -> 2 + 910231 -> 2 + 910241 -> 2 + 910301 -> 2 + 910401 -> 2 + 910451 -> 2 + 910561 -> 2 + _ -> 0 + +// Get the grade value of a skill. +// If no skill matches the ID, the result is 0. +pub fun grade-value(s: skill-id): int + match s.game-id + 10071 -> 240 + 10081 -> 240 + 10091 -> 240 + 10111 -> 240 + 10141 -> 240 + 10181 -> 240 + 10241 -> 240 + 10271 -> 240 + 10321 -> 240 + 10351 -> 240 + 10411 -> 240 + 10451 -> 240 + 10521 -> 240 + 10561 -> 240 + 10601 -> 240 + 10611 -> 240 + 100011 -> 340 + 100021 -> 340 + 100031 -> 340 + 100041 -> 340 + 100051 -> 340 + 100061 -> 340 + 100071 -> 340 + 100081 -> 340 + 100091 -> 340 + 100101 -> 340 + 100111 -> 340 + 100121 -> 340 + 100131 -> 340 + 100141 -> 340 + 100151 -> 340 + 100161 -> 340 + 100171 -> 340 + 100181 -> 340 + 100191 -> 340 + 100201 -> 340 + 100211 -> 340 + 100221 -> 340 + 100231 -> 340 + 100241 -> 340 + 100251 -> 340 + 100261 -> 340 + 100271 -> 340 + 100281 -> 340 + 100301 -> 340 + 100321 -> 340 + 100351 -> 340 + 100371 -> 340 + 100381 -> 340 + 100391 -> 340 + 100401 -> 340 + 100411 -> 340 + 100451 -> 340 + 100461 -> 340 + 100481 -> 340 + 100501 -> 340 + 100521 -> 340 + 100561 -> 340 + 100581 -> 340 + 100591 -> 340 + 100601 -> 340 + 100611 -> 340 + 110011 -> 340 + 110031 -> 340 + 110041 -> 340 + 110061 -> 340 + 110111 -> 340 + 110131 -> 340 + 110141 -> 340 + 110171 -> 340 + 110181 -> 340 + 110231 -> 340 + 110241 -> 340 + 110301 -> 340 + 110401 -> 340 + 110451 -> 340 + 110561 -> 340 + 200011 -> 174 + 200012 -> 129 + 200013 -> -129 + 200021 -> 174 + 200022 -> 129 + 200023 -> -129 + 200031 -> 174 + 200032 -> 129 + 200033 -> -129 + 200041 -> 174 + 200042 -> 129 + 200043 -> -129 + 200051 -> 174 + 200052 -> 129 + 200053 -> -129 + 200061 -> 174 + 200062 -> 129 + 200063 -> -129 + 200064 -> 461 + 200071 -> 174 + 200072 -> 129 + 200073 -> -129 + 200081 -> 174 + 200082 -> 129 + 200083 -> -129 + 200091 -> 174 + 200092 -> 129 + 200093 -> -129 + 200101 -> 174 + 200102 -> 129 + 200103 -> -129 + 200111 -> 174 + 200112 -> 129 + 200113 -> -129 + 200121 -> 174 + 200122 -> 129 + 200123 -> -129 + 200131 -> 174 + 200132 -> 129 + 200133 -> -129 + 200141 -> 174 + 200142 -> 129 + 200143 -> -129 + 200151 -> 174 + 200152 -> 129 + 200153 -> -129 + 200161 -> 174 + 200162 -> 129 + 200163 -> -129 + 200171 -> 174 + 200172 -> 129 + 200173 -> -129 + 200181 -> 174 + 200182 -> 129 + 200183 -> -129 + 200191 -> 174 + 200192 -> 129 + 200193 -> -129 + 200194 -> 461 + 200201 -> 174 + 200202 -> 129 + 200203 -> -129 + 200211 -> 174 + 200212 -> 129 + 200221 -> 174 + 200222 -> 129 + 200231 -> 174 + 200232 -> 129 + 200233 -> -129 + 200241 -> 174 + 200242 -> 129 + 200251 -> 174 + 200252 -> 129 + 200253 -> -129 + 200261 -> 174 + 200262 -> 129 + 200263 -> -129 + 200271 -> 174 + 200272 -> 129 + 200281 -> 174 + 200282 -> 129 + 200283 -> -129 + 200291 -> 174 + 200292 -> 129 + 200301 -> 174 + 200302 -> 129 + 200311 -> -129 + 200321 -> -129 + 200331 -> 508 + 200332 -> 217 + 200333 -> -262 + 200341 -> 508 + 200342 -> 217 + 200343 -> -262 + 200351 -> 508 + 200352 -> 217 + 200353 -> -262 + 200361 -> 508 + 200362 -> 217 + 200371 -> 508 + 200372 -> 217 + 200381 -> 508 + 200382 -> 217 + 200391 -> -262 + 200401 -> -262 + 200411 -> -262 + 200421 -> -262 + 200431 -> 394 + 200432 -> 129 + 200433 -> -174 + 200441 -> 508 + 200442 -> 217 + 200451 -> 334 + 200452 -> 129 + 200461 -> 508 + 200462 -> 217 + 200471 -> 508 + 200472 -> 217 + 200481 -> 508 + 200482 -> 217 + 200491 -> 394 + 200492 -> 174 + 200501 -> 334 + 200502 -> 129 + 200511 -> 508 + 200512 -> 217 + 200521 -> -262 + 200531 -> 334 + 200532 -> 217 + 200541 -> 508 + 200542 -> 217 + 200551 -> 508 + 200552 -> 217 + 200561 -> 508 + 200562 -> 217 + 200571 -> 508 + 200572 -> 217 + 200581 -> 508 + 200582 -> 217 + 200591 -> 508 + 200592 -> 217 + 200601 -> 508 + 200602 -> 217 + 200611 -> 508 + 200612 -> 217 + 200621 -> 508 + 200622 -> 217 + 200631 -> 508 + 200632 -> 217 + 200641 -> 508 + 200642 -> 217 + 200651 -> 508 + 200652 -> 217 + 200662 -> 217 + 200671 -> 508 + 200672 -> 217 + 200681 -> 508 + 200682 -> 217 + 200691 -> 508 + 200692 -> 217 + 200701 -> 508 + 200702 -> 217 + 200711 -> 508 + 200712 -> 217 + 200721 -> 508 + 200722 -> 217 + 200731 -> 508 + 200732 -> 217 + 200741 -> 508 + 200742 -> 217 + 200751 -> 508 + 200752 -> 217 + 200761 -> 508 + 200762 -> 217 + 200771 -> 217 + 200772 -> 508 + 200781 -> 217 + 200791 -> 174 + 200801 -> 174 + 200811 -> 174 + 200821 -> 174 + 200831 -> 217 + 200841 -> 217 + 200851 -> 217 + 200861 -> 217 + 200871 -> 217 + 200881 -> 217 + 200891 -> 217 + 200901 -> 217 + 200911 -> 217 + 200921 -> 217 + 200931 -> 217 + 200941 -> 217 + 200951 -> 174 + 200952 -> 129 + 200953 -> -129 + 200961 -> 262 + 200962 -> 217 + 200971 -> 262 + 200972 -> 217 + 200981 -> 508 + 200982 -> 262 + 200991 -> 508 + 200992 -> 217 + 201001 -> 394 + 201002 -> 174 + 201011 -> 508 + 201012 -> 262 + 201021 -> 508 + 201022 -> 262 + 201031 -> 262 + 201032 -> 217 + 201041 -> 262 + 201042 -> 217 + 201051 -> 508 + 201052 -> 217 + 201061 -> 508 + 201062 -> 217 + 201071 -> 334 + 201072 -> 217 + 201081 -> 461 + 201082 -> 217 + 201091 -> 508 + 201092 -> 217 + 201101 -> 262 + 201102 -> 217 + 201111 -> 262 + 201112 -> 217 + 201121 -> 334 + 201122 -> 129 + 201131 -> 394 + 201132 -> 174 + 201141 -> 508 + 201142 -> 217 + 201151 -> 508 + 201152 -> 217 + 201161 -> 508 + 201162 -> 217 + 201171 -> 262 + 201172 -> 217 + 201181 -> 262 + 201182 -> 217 + 201191 -> 508 + 201192 -> 217 + 201201 -> 508 + 201202 -> 217 + 201211 -> 508 + 201212 -> 217 + 201221 -> 461 + 201222 -> 217 + 201231 -> 334 + 201232 -> 129 + 201241 -> 262 + 201242 -> 217 + 201251 -> 262 + 201252 -> 217 + 201261 -> 334 + 201262 -> 129 + 201272 -> 217 + 201281 -> 508 + 201282 -> 217 + 201291 -> 508 + 201292 -> 217 + 201302 -> 217 + 201311 -> 262 + 201312 -> 217 + 201321 -> 262 + 201322 -> 217 + 201331 -> 334 + 201332 -> 217 + 201341 -> 334 + 201342 -> 217 + 201351 -> 508 + 201352 -> 217 + 201361 -> 334 + 201362 -> 217 + 201371 -> 334 + 201372 -> 85 + 201381 -> 262 + 201382 -> 217 + 201391 -> 262 + 201392 -> 217 + 201401 -> 334 + 201402 -> 217 + 201411 -> 334 + 201412 -> 217 + 201421 -> 508 + 201422 -> 217 + 201431 -> 334 + 201432 -> 85 + 201441 -> 508 + 201442 -> 217 + 201451 -> 262 + 201452 -> 217 + 201461 -> 262 + 201462 -> 217 + 201471 -> 334 + 201472 -> 85 + 201481 -> 508 + 201482 -> 217 + 201491 -> 508 + 201492 -> 217 + 201501 -> 334 + 201502 -> 85 + 201511 -> 508 + 201512 -> 217 + 201521 -> 217 + 201522 -> 174 + 201531 -> 217 + 201532 -> 174 + 201541 -> 217 + 201542 -> 174 + 201551 -> 217 + 201552 -> 174 + 201561 -> 334 + 201562 -> 174 + 201571 -> 217 + 201581 -> 217 + 201591 -> 217 + 201592 -> 508 + 201601 -> 217 + 201611 -> 217 + 201612 -> 508 + 201621 -> 217 + 201631 -> 129 + 201641 -> 129 + 201651 -> 217 + 201661 -> 217 + 201671 -> 508 + 201672 -> 217 + 201681 -> 394 + 201682 -> 174 + 201691 -> 508 + 201692 -> 217 + 201701 -> 508 + 201702 -> 217 + 201801 -> -129 + 201902 -> 217 + 202002 -> 217 + 202022 -> 217 + 202032 -> 129 + 202051 -> 370 + 210011 -> 633 + 210012 -> 263 + 210021 -> 633 + 210022 -> 263 + 210031 -> 633 + 210032 -> 263 + 210041 -> 633 + 210042 -> 263 + 210051 -> 633 + 210052 -> 263 + 300011 -> 0 + 300021 -> 0 + 300031 -> 0 + 300041 -> 0 + 300051 -> 0 + 300061 -> 0 + 300071 -> 0 + 300081 -> 0 + 300091 -> 0 + 300101 -> 0 + 900011 -> 180 + 900021 -> 180 + 900031 -> 180 + 900041 -> 180 + 900051 -> 180 + 900061 -> 180 + 900071 -> 180 + 900081 -> 180 + 900091 -> 180 + 900101 -> 180 + 900111 -> 180 + 900121 -> 180 + 900131 -> 180 + 900141 -> 180 + 900151 -> 180 + 900161 -> 180 + 900171 -> 180 + 900181 -> 180 + 900191 -> 180 + 900201 -> 180 + 900211 -> 180 + 900221 -> 180 + 900231 -> 180 + 900241 -> 180 + 900251 -> 180 + 900261 -> 180 + 900271 -> 180 + 900281 -> 180 + 900301 -> 180 + 900321 -> 180 + 900351 -> 180 + 900371 -> 180 + 900381 -> 180 + 900391 -> 180 + 900401 -> 180 + 900411 -> 180 + 900451 -> 180 + 900461 -> 180 + 900481 -> 180 + 900501 -> 180 + 900521 -> 180 + 900561 -> 180 + 900581 -> 180 + 900591 -> 180 + 900601 -> 180 + 900611 -> 180 + 910011 -> 180 + 910031 -> 180 + 910041 -> 180 + 910061 -> 180 + 910111 -> 180 + 910131 -> 180 + 910141 -> 180 + 910171 -> 180 + 910181 -> 180 + 910231 -> 180 + 910241 -> 180 + 910301 -> 180 + 910401 -> 180 + 910451 -> 180 + 910561 -> 180 + _ -> 0 + +// Get whether a skill is a wit check. +// If no skill matches the ID, the result is False. +pub fun wit-check(s: skill-id): bool + match s.game-id + 10071 -> False + 10081 -> False + 10091 -> False + 10111 -> False + 10141 -> False + 10181 -> False + 10241 -> False + 10271 -> False + 10321 -> False + 10351 -> False + 10411 -> False + 10451 -> False + 10521 -> False + 10561 -> False + 10601 -> False + 10611 -> False + 100011 -> False + 100021 -> False + 100031 -> False + 100041 -> False + 100051 -> False + 100061 -> False + 100071 -> False + 100081 -> False + 100091 -> False + 100101 -> False + 100111 -> False + 100121 -> False + 100131 -> False + 100141 -> False + 100151 -> False + 100161 -> False + 100171 -> False + 100181 -> False + 100191 -> False + 100201 -> False + 100211 -> False + 100221 -> False + 100231 -> False + 100241 -> False + 100251 -> False + 100261 -> False + 100271 -> False + 100281 -> False + 100301 -> False + 100321 -> False + 100351 -> False + 100371 -> False + 100381 -> False + 100391 -> False + 100401 -> False + 100411 -> False + 100451 -> False + 100461 -> False + 100481 -> False + 100501 -> False + 100521 -> False + 100561 -> False + 100581 -> False + 100591 -> False + 100601 -> False + 100611 -> False + 110011 -> False + 110031 -> False + 110041 -> False + 110061 -> False + 110111 -> False + 110131 -> False + 110141 -> False + 110171 -> False + 110181 -> False + 110231 -> False + 110241 -> False + 110301 -> False + 110401 -> False + 110451 -> False + 110561 -> False + 200011 -> False + 200012 -> False + 200013 -> False + 200021 -> False + 200022 -> False + 200023 -> False + 200031 -> False + 200032 -> False + 200033 -> False + 200041 -> False + 200042 -> False + 200043 -> False + 200051 -> False + 200052 -> False + 200053 -> False + 200061 -> False + 200062 -> False + 200063 -> False + 200064 -> False + 200071 -> False + 200072 -> False + 200073 -> False + 200081 -> False + 200082 -> False + 200083 -> False + 200091 -> False + 200092 -> False + 200093 -> False + 200101 -> False + 200102 -> False + 200103 -> False + 200111 -> False + 200112 -> False + 200113 -> False + 200121 -> False + 200122 -> False + 200123 -> False + 200131 -> False + 200132 -> False + 200133 -> False + 200141 -> False + 200142 -> False + 200143 -> False + 200151 -> False + 200152 -> False + 200153 -> False + 200161 -> False + 200162 -> False + 200163 -> False + 200171 -> False + 200172 -> False + 200173 -> False + 200181 -> False + 200182 -> False + 200183 -> False + 200191 -> False + 200192 -> False + 200193 -> False + 200194 -> False + 200201 -> False + 200202 -> False + 200203 -> False + 200211 -> False + 200212 -> False + 200221 -> False + 200222 -> False + 200231 -> False + 200232 -> False + 200233 -> False + 200241 -> False + 200242 -> False + 200251 -> False + 200252 -> False + 200253 -> False + 200261 -> False + 200262 -> False + 200263 -> False + 200271 -> False + 200272 -> False + 200281 -> False + 200282 -> False + 200283 -> False + 200291 -> False + 200292 -> False + 200301 -> False + 200302 -> False + 200311 -> False + 200321 -> False + 200331 -> True + 200332 -> True + 200333 -> True + 200341 -> True + 200342 -> True + 200343 -> True + 200351 -> True + 200352 -> True + 200353 -> True + 200361 -> True + 200362 -> True + 200371 -> True + 200372 -> True + 200381 -> True + 200382 -> True + 200391 -> True + 200401 -> True + 200411 -> True + 200421 -> True + 200431 -> True + 200432 -> True + 200433 -> True + 200441 -> True + 200442 -> True + 200451 -> True + 200452 -> True + 200461 -> True + 200462 -> True + 200471 -> True + 200472 -> True + 200481 -> True + 200482 -> True + 200491 -> True + 200492 -> True + 200501 -> True + 200502 -> True + 200511 -> True + 200512 -> True + 200521 -> True + 200531 -> True + 200532 -> True + 200541 -> True + 200542 -> True + 200551 -> True + 200552 -> True + 200561 -> True + 200562 -> True + 200571 -> True + 200572 -> True + 200581 -> True + 200582 -> True + 200591 -> True + 200592 -> True + 200601 -> True + 200602 -> True + 200611 -> True + 200612 -> True + 200621 -> True + 200622 -> True + 200631 -> True + 200632 -> True + 200641 -> True + 200642 -> True + 200651 -> True + 200652 -> True + 200662 -> True + 200671 -> True + 200672 -> True + 200681 -> True + 200682 -> True + 200691 -> True + 200692 -> True + 200701 -> True + 200702 -> True + 200711 -> True + 200712 -> True + 200721 -> True + 200722 -> True + 200731 -> True + 200732 -> True + 200741 -> True + 200742 -> True + 200751 -> True + 200752 -> True + 200761 -> True + 200762 -> True + 200771 -> True + 200772 -> True + 200781 -> True + 200791 -> True + 200801 -> True + 200811 -> True + 200821 -> True + 200831 -> True + 200841 -> True + 200851 -> True + 200861 -> True + 200871 -> True + 200881 -> True + 200891 -> True + 200901 -> True + 200911 -> True + 200921 -> True + 200931 -> True + 200941 -> True + 200951 -> False + 200952 -> False + 200953 -> False + 200961 -> True + 200962 -> True + 200971 -> True + 200972 -> True + 200981 -> True + 200982 -> True + 200991 -> True + 200992 -> True + 201001 -> True + 201002 -> True + 201011 -> True + 201012 -> True + 201021 -> True + 201022 -> True + 201031 -> True + 201032 -> True + 201041 -> True + 201042 -> True + 201051 -> True + 201052 -> True + 201061 -> True + 201062 -> True + 201071 -> True + 201072 -> True + 201081 -> True + 201082 -> True + 201091 -> True + 201092 -> True + 201101 -> True + 201102 -> True + 201111 -> True + 201112 -> True + 201121 -> True + 201122 -> True + 201131 -> True + 201132 -> True + 201141 -> True + 201142 -> True + 201151 -> True + 201152 -> True + 201161 -> True + 201162 -> True + 201171 -> True + 201172 -> True + 201181 -> True + 201182 -> True + 201191 -> True + 201192 -> True + 201201 -> True + 201202 -> True + 201211 -> True + 201212 -> True + 201221 -> True + 201222 -> True + 201231 -> True + 201232 -> True + 201241 -> True + 201242 -> True + 201251 -> True + 201252 -> True + 201261 -> True + 201262 -> True + 201272 -> True + 201281 -> True + 201282 -> True + 201291 -> True + 201292 -> True + 201302 -> True + 201311 -> True + 201312 -> True + 201321 -> True + 201322 -> True + 201331 -> True + 201332 -> True + 201341 -> True + 201342 -> True + 201351 -> True + 201352 -> True + 201361 -> True + 201362 -> True + 201371 -> True + 201372 -> True + 201381 -> True + 201382 -> True + 201391 -> True + 201392 -> True + 201401 -> True + 201402 -> True + 201411 -> True + 201412 -> True + 201421 -> True + 201422 -> True + 201431 -> True + 201432 -> True + 201441 -> True + 201442 -> True + 201451 -> True + 201452 -> True + 201461 -> True + 201462 -> True + 201471 -> True + 201472 -> True + 201481 -> True + 201482 -> True + 201491 -> True + 201492 -> True + 201501 -> True + 201502 -> True + 201511 -> True + 201512 -> True + 201521 -> False + 201522 -> False + 201531 -> False + 201532 -> False + 201541 -> False + 201542 -> False + 201551 -> False + 201552 -> False + 201561 -> True + 201562 -> True + 201571 -> True + 201581 -> True + 201591 -> True + 201592 -> True + 201601 -> True + 201611 -> True + 201612 -> True + 201621 -> True + 201631 -> False + 201641 -> False + 201651 -> True + 201661 -> True + 201671 -> True + 201672 -> True + 201681 -> True + 201682 -> True + 201691 -> True + 201692 -> True + 201701 -> True + 201702 -> True + 201801 -> False + 201902 -> True + 202002 -> True + 202022 -> True + 202032 -> True + 202051 -> False + 210011 -> True + 210012 -> True + 210021 -> True + 210022 -> True + 210031 -> True + 210032 -> True + 210041 -> True + 210042 -> True + 210051 -> True + 210052 -> True + 300011 -> False + 300021 -> False + 300031 -> False + 300041 -> False + 300051 -> False + 300061 -> False + 300071 -> False + 300081 -> False + 300091 -> False + 300101 -> False + 900011 -> True + 900021 -> True + 900031 -> True + 900041 -> True + 900051 -> True + 900061 -> True + 900071 -> True + 900081 -> True + 900091 -> True + 900101 -> True + 900111 -> True + 900121 -> True + 900131 -> True + 900141 -> True + 900151 -> True + 900161 -> True + 900171 -> True + 900181 -> True + 900191 -> True + 900201 -> True + 900211 -> True + 900221 -> True + 900231 -> True + 900241 -> True + 900251 -> True + 900261 -> True + 900271 -> True + 900281 -> True + 900301 -> True + 900321 -> True + 900351 -> True + 900371 -> True + 900381 -> True + 900391 -> True + 900401 -> True + 900411 -> True + 900451 -> True + 900461 -> True + 900481 -> True + 900501 -> True + 900521 -> True + 900561 -> True + 900581 -> True + 900591 -> True + 900601 -> True + 900611 -> True + 910011 -> True + 910031 -> True + 910041 -> True + 910061 -> True + 910111 -> True + 910131 -> True + 910141 -> True + 910171 -> True + 910181 -> True + 910231 -> True + 910241 -> True + 910301 -> True + 910401 -> True + 910451 -> True + 910561 -> True + _ -> False + +// Get the activations of a skill. +// If no skill matches the ID, the result is an empty list. +pub fun activations(s: skill-id): list + match s.game-id + 10071 -> [ + Activation( + precondition = "", + condition = "distance_rate>=50&distance_rate<=60&order_rate>50", + duration = 60000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 10081 -> [ + Activation( + precondition = "", + condition = "order>=3&order_rate<=50&remain_distance<=200&bashin_diff_infront<=1@order>=3&order_rate<=50&remain_distance<=200&bashin_diff_behind<=1", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 10091 -> [ + Activation( + precondition = "", + condition = "distance_rate>=50&order==1&bashin_diff_behind<=1@distance_rate>=50&order==2&is_overtake==1", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Accel(2000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 10111 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&corner==0&change_order_onetime<0&order>=3", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 10141 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&corner==0&hp_per>=30&order<=2", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Accel(2000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 10181 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&corner!=0&order>=3&change_order_onetime<0", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 10241 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&blocked_side_continuetime>=2&order<=3", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Accel(2000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 10271 -> [ + Activation( + precondition = "", + condition = "phase>=2&corner!=0&order_rate>=65&order_rate<=70", + duration = 40000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(3000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 10321 -> [ + Activation( + precondition = "", + condition = "distance_rate>=50&corner!=0&order>=3&order_rate<=40", + duration = 40000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(350.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 10351 -> [ + Activation( + precondition = "is_finalcorner==1&blocked_side_continuetime>=2", + condition = "is_finalcorner==1&corner==0&order<=5", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 10411 -> [ + Activation( + precondition = "", + condition = "distance_rate>=50&order<=3&blocked_side_continuetime>=2", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 10451 -> [ + Activation( + precondition = "", + condition = "phase_random==1&order>=2&order_rate<=40", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(550.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 10521 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&corner!=0&order_rate>50&near_count>=1", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(350.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 10561 -> [ + Activation( + precondition = "", + condition = "phase>=2&order>=3&blocked_front==1", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Accel(1000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 10601 -> [ + Activation( + precondition = "", + condition = "phase>=2&order==3&bashin_diff_behind<=1", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 10611 -> [ + Activation( + precondition = "", + condition = "temptation_count==0&remain_distance<=201&remain_distance>=199&order>=4&order_rate<=70", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100011 -> [ + Activation( + precondition = "", + condition = "phase>=2&order>=1&order_rate<=50&change_order_onetime<0", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Accel(1000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100021 -> [ + Activation( + precondition = "", + condition = "distance_rate>=50&order==1&bashin_diff_behind>=1", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100031 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&corner==0&order<=3&bashin_diff_infront<=1&is_overtake==1", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(4500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100041 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&order<=5&order_rate<=50", + duration = 40000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(4000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100051 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&corner==0&order_rate<=30&behind_near_lane_time_set1>=1", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(4500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100061 -> [ + Activation( + precondition = "", + condition = "order>=2&order<=5&order_rate<=50&remain_distance<=201&remain_distance>=199", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(4500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100071 -> [ + Activation( + precondition = "", + condition = "distance_rate>=50&distance_rate<=60&order_rate>50", + duration = 60000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100081 -> [ + Activation( + precondition = "", + condition = "order>=3&order_rate<=50&remain_distance<=200&bashin_diff_infront<=1@order>=3&order_rate<=50&remain_distance<=200&bashin_diff_behind<=1", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100091 -> [ + Activation( + precondition = "", + condition = "distance_rate>=50&order==1&bashin_diff_behind<=1@distance_rate>=50&order==2&is_overtake==1", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Accel(3000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100101 -> [ + Activation( + precondition = "", + condition = "is_finalcorner_laterhalf==1&corner!=0&order>=3&order_rate<=40", + duration = 40000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(4000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100111 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&corner==0&change_order_onetime<0&order>=3", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100121 -> [ + Activation( + precondition = "is_finalcorner==1&is_behind_in==1&change_order_onetime<0&order_rate>=40", + condition = "is_finalcorner==1&corner==0", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100131 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&corner!=0&distance_diff_rate<=30", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100141 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&corner==0&hp_per>=30&order<=2", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Accel(3000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100151 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&bashin_diff_behind<=1&order<=4@is_finalcorner==1&bashin_diff_infront<=1&order<=4", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100161 -> [ + Activation( + precondition = "phase==1&blocked_side_continuetime>=2", + condition = "is_finalcorner==1&order>=2&order_rate<=75&is_behind_in==1&change_order_onetime<0", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(4500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + Activation( + precondition = "", + condition = "is_finalcorner==1&order>=2&order_rate<=75&is_behind_in==1&change_order_onetime<0", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100171 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&change_order_up_end_after>=3&corner==0", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(4500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100181 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&corner!=0&order>=3&change_order_onetime<0", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100191 -> [ + Activation( + precondition = "", + condition = "change_order_up_end_after>=2", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Lane-Speed(350.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100201 -> [ + Activation( + precondition = "", + condition = "phase>=2&corner!=0&order==1", + duration = 40000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(4000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100211 -> [ + Activation( + precondition = "", + condition = "distance_rate>=50&corner==0&order_rate>=70&order_rate<=75&is_overtake==1@distance_rate>=50&corner==0&order_rate<=30&order_rate>=20", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Accel(1000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100221 -> [ + Activation( + precondition = "", + condition = "distance_rate>=50&order>=2&order_rate<=40&blocked_side_continuetime>=2", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100231 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&change_order_onetime<0&order<=4", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100241 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&blocked_side_continuetime>=2&order<=3", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Accel(3000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100251 -> [ + Activation( + precondition = "", + condition = "distance_rate>=50&order_rate>=40&order_rate<=70", + duration = 60000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Current-Speed(-500.decimal(-4)), + value-usage = Direct, + target = Ahead(5) + ), + ] + ), + ] + 100261 -> [ + Activation( + precondition = "", + condition = "is_badstart==0&temptation_count==0&order<=3&is_finalcorner==1&corner==0", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100271 -> [ + Activation( + precondition = "", + condition = "phase>=2&corner!=0&order_rate>=65&order_rate<=70", + duration = 40000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(4000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100281 -> [ + Activation( + precondition = "", + condition = "distance_rate>=45&distance_rate<=60&order>=3&order_rate<=50&hp_per<=70", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Accel(3000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100301 -> [ + Activation( + precondition = "is_finalcorner==1&order<=4&change_order_onetime<0", + condition = "is_finalcorner==1&corner==0", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100321 -> [ + Activation( + precondition = "", + condition = "distance_rate>=50&corner!=0&order>=3&order_rate<=40", + duration = 40000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(550.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100351 -> [ + Activation( + precondition = "is_finalcorner==1&blocked_side_continuetime>=2", + condition = "is_finalcorner==1&corner==0&order<=5", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100371 -> [ + Activation( + precondition = "", + condition = "is_badstart==0&temptation_count==0&order>=3&is_finalcorner==1&corner==0", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100381 -> [ + Activation( + precondition = "", + condition = "distance_rate>=50&distance_rate<=65&order>=2&order_rate<=40&change_order_onetime<0", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Accel(3000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100391 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&corner==0&blocked_side_continuetime>=2", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100401 -> [ + Activation( + precondition = "", + condition = "distance_rate>=50&order_rate>=40&order_rate<=70&is_overtake==1", + duration = 60000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(3000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100411 -> [ + Activation( + precondition = "", + condition = "distance_rate>=50&order<=3&blocked_side_continuetime>=2", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100451 -> [ + Activation( + precondition = "", + condition = "phase_random==1&order>=2&order_rate<=40", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(750.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100461 -> [ + Activation( + precondition = "", + condition = "phase==1&corner==0&order<=2&bashin_diff_behind<=1", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Accel(3000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100481 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&corner==0&order>=2&order_rate<=30&overtake_target_time>=2@is_finalcorner==1&corner==0&order_rate<=20&change_order_onetime<0", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100501 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&order_rate>=40&order_rate<=75&is_overtake==1", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100521 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&corner!=0&order_rate>50&near_count>=1", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(550.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100561 -> [ + Activation( + precondition = "", + condition = "phase>=2&order>=3&blocked_front==1", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Accel(1000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100581 -> [ + Activation( + precondition = "", + condition = "phase>=2&corner!=0&order>=3&change_order_onetime<0", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Accel(3000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100591 -> [ + Activation( + precondition = "", + condition = "phase>=2&corner!=0&is_finalcorner==0&temptation_count==0&order_rate>=50&order_rate<=70@phase==1&corner!=0&is_finalcorner==1&temptation_count==0&order_rate>=50&order_rate<=70", + duration = 40000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(4000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100601 -> [ + Activation( + precondition = "", + condition = "phase>=2&order==3&bashin_diff_behind<=1", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 100611 -> [ + Activation( + precondition = "", + condition = "temptation_count==0&remain_distance<=201&remain_distance>=199&order>=4&order_rate<=70", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(4500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 110011 -> [ + Activation( + precondition = "", + condition = "phase==1&order>=2&order_rate<=70&activate_count_middle>=2", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(550.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 110031 -> [ + Activation( + precondition = "is_finalcorner==1&is_overtake==1&order<=5&order_rate<=50&overtake_target_no_order_up_time>=2", + condition = "is_finalcorner==1&corner==0", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(4500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 110041 -> [ + Activation( + precondition = "", + condition = "distance_rate>=50&activate_count_heal>=1&order<=3", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 110061 -> [ + Activation( + precondition = "", + condition = "activate_count_heal>=3&distance_rate>=50", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Accel(3000.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = HP(350.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 110111 -> [ + Activation( + precondition = "", + condition = "phase==1&change_order_onetime>0&order_rate>=40", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(750.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 110131 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&hp_per<=45&order<=3&order_rate<=50&bashin_diff_behind<=1&overtake_target_time>=1", + duration = 60000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 110141 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&corner!=0&is_overtake==1&order>=4&order_rate<=75", + duration = 40000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(4000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 110171 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&order_rate<=40&overtake_target_time>=2", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 110181 -> [ + Activation( + precondition = "", + condition = "phase==1&order>=3&order_rate<=50&is_overtake==1", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 110231 -> [ + Activation( + precondition = "", + condition = "order_rate_in40_continue==1&phase==1&distance_rate>=50&order>=2&order_rate<=40", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 110241 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&corner!=0&order_rate<=40&change_order_onetime<0", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + Activation( + precondition = "", + condition = "is_finalcorner==1&corner!=0&order_rate>=50&order_rate<=80&change_order_onetime<0", + duration = 40000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(4000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 110301 -> [ + Activation( + precondition = "", + condition = "phase==1&order>=2&order_rate<=50&overtake_target_time>=1", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(550.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = HP(-50.decimal(-4)), + value-usage = Direct, + target = Ahead(18) + ), + ] + ), + ] + 110401 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&corner!=0&order_rate>=30&order_rate<=70&blocked_side_continuetime>=2", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Accel(3000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 110451 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&corner==0&order<=4&bashin_diff_infront<=1", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Accel(3000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 110561 -> [ + Activation( + precondition = "", + condition = "distance_rate>=50&order_rate>=40&overtake_target_time>=2", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200011 -> [ + Activation( + precondition = "", + condition = "rotation==1", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Speed(600000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200012 -> [ + Activation( + precondition = "", + condition = "rotation==1", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Speed(400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200013 -> [ + Activation( + precondition = "", + condition = "rotation==1", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Speed(-400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200021 -> [ + Activation( + precondition = "", + condition = "rotation==2", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Speed(600000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200022 -> [ + Activation( + precondition = "", + condition = "rotation==2", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Speed(400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200023 -> [ + Activation( + precondition = "", + condition = "rotation==2", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Speed(-400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200031 -> [ + Activation( + precondition = "", + condition = "track_id==10006", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Stamina(600000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200032 -> [ + Activation( + precondition = "", + condition = "track_id==10006", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Stamina(400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200033 -> [ + Activation( + precondition = "", + condition = "track_id==10006", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Stamina(-400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200041 -> [ + Activation( + precondition = "", + condition = "track_id==10005", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Stamina(600000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200042 -> [ + Activation( + precondition = "", + condition = "track_id==10005", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Stamina(400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200043 -> [ + Activation( + precondition = "", + condition = "track_id==10005", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Stamina(-400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200051 -> [ + Activation( + precondition = "", + condition = "track_id==10009", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Stamina(600000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200052 -> [ + Activation( + precondition = "", + condition = "track_id==10009", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Stamina(400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200053 -> [ + Activation( + precondition = "", + condition = "track_id==10009", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Stamina(-400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200061 -> [ + Activation( + precondition = "", + condition = "track_id==10008", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Stamina(600000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200062 -> [ + Activation( + precondition = "", + condition = "track_id==10008", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Stamina(400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200063 -> [ + Activation( + precondition = "", + condition = "track_id==10008", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Stamina(-400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200064 -> [ + Activation( + precondition = "", + condition = "track_id==10008", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Stamina(600000.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Passive-Wit(600000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200071 -> [ + Activation( + precondition = "", + condition = "track_id==10007", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Stamina(600000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200072 -> [ + Activation( + precondition = "", + condition = "track_id==10007", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Stamina(400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200073 -> [ + Activation( + precondition = "", + condition = "track_id==10007", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Stamina(-400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200081 -> [ + Activation( + precondition = "", + condition = "track_id==10001", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Stamina(600000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200082 -> [ + Activation( + precondition = "", + condition = "track_id==10001", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Stamina(400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200083 -> [ + Activation( + precondition = "", + condition = "track_id==10001", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Stamina(-400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200091 -> [ + Activation( + precondition = "", + condition = "track_id==10002", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Stamina(600000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200092 -> [ + Activation( + precondition = "", + condition = "track_id==10002", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Stamina(400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200093 -> [ + Activation( + precondition = "", + condition = "track_id==10002", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Stamina(-400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200101 -> [ + Activation( + precondition = "", + condition = "track_id==10004", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Stamina(600000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200102 -> [ + Activation( + precondition = "", + condition = "track_id==10004", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Stamina(400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200103 -> [ + Activation( + precondition = "", + condition = "track_id==10004", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Stamina(-400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200111 -> [ + Activation( + precondition = "", + condition = "track_id==10003", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Stamina(600000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200112 -> [ + Activation( + precondition = "", + condition = "track_id==10003", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Stamina(400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200113 -> [ + Activation( + precondition = "", + condition = "track_id==10003", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Stamina(-400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200121 -> [ + Activation( + precondition = "", + condition = "track_id==10010", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Stamina(600000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200122 -> [ + Activation( + precondition = "", + condition = "track_id==10010", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Stamina(400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200123 -> [ + Activation( + precondition = "", + condition = "track_id==10010", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Stamina(-400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200131 -> [ + Activation( + precondition = "", + condition = "is_basis_distance==1", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Stamina(600000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200132 -> [ + Activation( + precondition = "", + condition = "is_basis_distance==1", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Stamina(400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200133 -> [ + Activation( + precondition = "", + condition = "is_basis_distance==1", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Stamina(-400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200141 -> [ + Activation( + precondition = "", + condition = "is_basis_distance==0", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Stamina(600000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200142 -> [ + Activation( + precondition = "", + condition = "is_basis_distance==0", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Stamina(400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200143 -> [ + Activation( + precondition = "", + condition = "is_basis_distance==0", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Stamina(-400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200151 -> [ + Activation( + precondition = "", + condition = "ground_condition==1", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Power(600000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200152 -> [ + Activation( + precondition = "", + condition = "ground_condition==1", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Power(400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200153 -> [ + Activation( + precondition = "", + condition = "ground_condition==1", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Power(-400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200161 -> [ + Activation( + precondition = "", + condition = "ground_condition==2@ground_condition==3@ground_condition==4", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Power(600000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200162 -> [ + Activation( + precondition = "", + condition = "ground_condition==2@ground_condition==3@ground_condition==4", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Power(400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200163 -> [ + Activation( + precondition = "", + condition = "ground_condition==2@ground_condition==3@ground_condition==4", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Power(-400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200171 -> [ + Activation( + precondition = "", + condition = "season==1@season==5", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Speed(600000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200172 -> [ + Activation( + precondition = "", + condition = "season==1@season==5", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Speed(400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200173 -> [ + Activation( + precondition = "", + condition = "season==1@season==5", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Speed(-400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200181 -> [ + Activation( + precondition = "", + condition = "season==2", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Speed(600000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200182 -> [ + Activation( + precondition = "", + condition = "season==2", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Speed(400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200183 -> [ + Activation( + precondition = "", + condition = "season==2", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Speed(-400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200191 -> [ + Activation( + precondition = "", + condition = "season==3", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Speed(600000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200192 -> [ + Activation( + precondition = "", + condition = "season==3", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Speed(400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200193 -> [ + Activation( + precondition = "", + condition = "season==3", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Speed(-400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200194 -> [ + Activation( + precondition = "", + condition = "season==3", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Speed(600000.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Passive-Power(600000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200201 -> [ + Activation( + precondition = "", + condition = "season==4", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Speed(600000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200202 -> [ + Activation( + precondition = "", + condition = "season==4", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Speed(400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200203 -> [ + Activation( + precondition = "", + condition = "season==4", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Speed(-400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200211 -> [ + Activation( + precondition = "", + condition = "weather==1", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Guts(600000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200212 -> [ + Activation( + precondition = "", + condition = "weather==1", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Guts(400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200221 -> [ + Activation( + precondition = "", + condition = "weather==2", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Guts(600000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200222 -> [ + Activation( + precondition = "", + condition = "weather==2", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Guts(400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200231 -> [ + Activation( + precondition = "", + condition = "weather==3", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Guts(600000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200232 -> [ + Activation( + precondition = "", + condition = "weather==3", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Guts(400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200233 -> [ + Activation( + precondition = "", + condition = "weather==3", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Guts(-400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200241 -> [ + Activation( + precondition = "", + condition = "weather==4", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Guts(600000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200242 -> [ + Activation( + precondition = "", + condition = "weather==4", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Guts(400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200251 -> [ + Activation( + precondition = "", + condition = "post_number<=3", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Wit(600000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200252 -> [ + Activation( + precondition = "", + condition = "post_number<=3", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Wit(400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200253 -> [ + Activation( + precondition = "", + condition = "post_number<=3", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Wit(-400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200261 -> [ + Activation( + precondition = "", + condition = "post_number>=6", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Speed(600000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200262 -> [ + Activation( + precondition = "", + condition = "post_number>=6", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Speed(400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200263 -> [ + Activation( + precondition = "", + condition = "post_number>=6", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Speed(-400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200271 -> [ + Activation( + precondition = "", + condition = "running_style_count_same<=1", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Speed(800000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200272 -> [ + Activation( + precondition = "", + condition = "running_style_count_same<=1", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Speed(600000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200281 -> [ + Activation( + precondition = "", + condition = "running_style_count_same_rate>=40", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Power(600000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200282 -> [ + Activation( + precondition = "", + condition = "running_style_count_same_rate>=40", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Power(400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200283 -> [ + Activation( + precondition = "", + condition = "running_style_count_same_rate>=40", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Power(-400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200291 -> [ + Activation( + precondition = "", + condition = "running_style_equal_popularity_one==1", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Guts(600000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200292 -> [ + Activation( + precondition = "", + condition = "running_style_equal_popularity_one==1", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Guts(400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200301 -> [ + Activation( + precondition = "", + condition = "popularity>=4", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Speed(600000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200302 -> [ + Activation( + precondition = "", + condition = "popularity>=4", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Speed(400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200311 -> [ + Activation( + precondition = "", + condition = "grade==100", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Speed(-400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200321 -> [ + Activation( + precondition = "", + condition = "popularity==1", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Stamina(-400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200331 -> [ + Activation( + precondition = "", + condition = "all_corner_random==1", + duration = 24000.decimal(-4), + cooldown = 300000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200332 -> [ + Activation( + precondition = "", + condition = "all_corner_random==1", + duration = 24000.decimal(-4), + cooldown = 300000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200333 -> [ + Activation( + precondition = "", + condition = "all_corner_random==1", + duration = 24000.decimal(-4), + cooldown = 300000.decimal(-4), + abilities = [ + Ability( + ability-type = Current-Speed(-2000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200341 -> [ + Activation( + precondition = "", + condition = "all_corner_random==1", + duration = 30000.decimal(-4), + cooldown = 300000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(4000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200342 -> [ + Activation( + precondition = "", + condition = "all_corner_random==1", + duration = 30000.decimal(-4), + cooldown = 300000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(2000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200343 -> [ + Activation( + precondition = "", + condition = "all_corner_random==1", + duration = 30000.decimal(-4), + cooldown = 300000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(-2000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200351 -> [ + Activation( + precondition = "", + condition = "corner_random==1@corner_random==2@corner_random==3@corner_random==4", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(550.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200352 -> [ + Activation( + precondition = "", + condition = "corner_random==1@corner_random==2@corner_random==3@corner_random==4", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(150.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200353 -> [ + Activation( + precondition = "", + condition = "corner_random==1@corner_random==2@corner_random==3@corner_random==4", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(-200.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200361 -> [ + Activation( + precondition = "", + condition = "straight_random==1", + duration = 24000.decimal(-4), + cooldown = 300000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200362 -> [ + Activation( + precondition = "", + condition = "straight_random==1", + duration = 24000.decimal(-4), + cooldown = 300000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200371 -> [ + Activation( + precondition = "", + condition = "straight_random==1", + duration = 30000.decimal(-4), + cooldown = 300000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(4000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200372 -> [ + Activation( + precondition = "", + condition = "straight_random==1", + duration = 30000.decimal(-4), + cooldown = 300000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(2000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200381 -> [ + Activation( + precondition = "", + condition = "straight_random==1", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(550.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200382 -> [ + Activation( + precondition = "", + condition = "straight_random==1", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(150.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200391 -> [ + Activation( + precondition = "", + condition = "up_slope_random==1", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(-200.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200401 -> [ + Activation( + precondition = "", + condition = "accumulatetime>=2&is_surrounded==1", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(-200.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200411 -> [ + Activation( + precondition = "", + condition = "last_straight_random==1&distance_diff_rate>=75", + duration = 30000.decimal(-4), + cooldown = 300000.decimal(-4), + abilities = [ + Ability( + ability-type = Current-Speed(-2000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200421 -> [ + Activation( + precondition = "", + condition = "remain_distance==200&order==1&bashin_diff_behind>=1", + duration = 30000.decimal(-4), + cooldown = 300000.decimal(-4), + abilities = [ + Ability( + ability-type = Current-Speed(-2000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200431 -> [ + Activation( + precondition = "", + condition = "always==1", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Gate-Delay(4000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200432 -> [ + Activation( + precondition = "", + condition = "always==1", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Gate-Delay(9000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200433 -> [ + Activation( + precondition = "", + condition = "always==1", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Gate-Delay(15000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200441 -> [ + Activation( + precondition = "", + condition = "phase<=1&accumulatetime>=5&blocked_front_continuetime>=1", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(550.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200442 -> [ + Activation( + precondition = "", + condition = "phase<=1&accumulatetime>=5&blocked_front_continuetime>=1", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(150.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200451 -> [ + Activation( + precondition = "", + condition = "phase_random==0", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Lane-Speed(450.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200452 -> [ + Activation( + precondition = "", + condition = "phase_random==0", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Lane-Speed(350.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200461 -> [ + Activation( + precondition = "", + condition = "phase==1&change_order_onetime<0", + duration = 18000.decimal(-4), + cooldown = 300000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200462 -> [ + Activation( + precondition = "", + condition = "phase==1&change_order_onetime<0", + duration = 18000.decimal(-4), + cooldown = 300000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200471 -> [ + Activation( + precondition = "", + condition = "phase==1&change_order_onetime>0", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(550.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200472 -> [ + Activation( + precondition = "", + condition = "phase==1&change_order_onetime>0", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(150.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200481 -> [ + Activation( + precondition = "", + condition = "phase==1&is_surrounded==1", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(550.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200482 -> [ + Activation( + precondition = "", + condition = "phase==1&is_surrounded==1", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(150.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200491 -> [ + Activation( + precondition = "", + condition = "infront_near_lane_time>=1&is_lastspurt==1&hp_per>=1", + duration = 30000.decimal(-4), + cooldown = 300000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(4000.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Lane-Speed(250.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200492 -> [ + Activation( + precondition = "", + condition = "infront_near_lane_time>=1&is_lastspurt==1&hp_per>=1", + duration = 30000.decimal(-4), + cooldown = 300000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(2000.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Lane-Speed(50.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200501 -> [ + Activation( + precondition = "", + condition = "phase_random==2", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Lane-Speed(350.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200502 -> [ + Activation( + precondition = "", + condition = "phase_random==2", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Lane-Speed(250.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200511 -> [ + Activation( + precondition = "", + condition = "is_lastspurt==1&phase_random==3", + duration = 24000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200512 -> [ + Activation( + precondition = "", + condition = "is_lastspurt==1&phase_random==3", + duration = 24000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200521 -> [ + Activation( + precondition = "", + condition = "accumulatetime>=2&order==1&bashin_diff_behind>=1", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(-200.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200531 -> [ + Activation( + precondition = "", + condition = "running_style==1&phase==0", + duration = 12000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(4000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200532 -> [ + Activation( + precondition = "", + condition = "running_style==1&phase==0", + duration = 12000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(2000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200541 -> [ + Activation( + precondition = "", + condition = "running_style==1&phase_random==1&order_rate<=50", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200542 -> [ + Activation( + precondition = "", + condition = "running_style==1&phase_random==1&order_rate<=50", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200551 -> [ + Activation( + precondition = "", + condition = "running_style==1&is_finalcorner_random==1&order==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(4000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200552 -> [ + Activation( + precondition = "", + condition = "running_style==1&is_finalcorner_random==1&order==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(2000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200561 -> [ + Activation( + precondition = "", + condition = "running_style==2&phase_laterhalf_random==0&order_rate<=50", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(550.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200562 -> [ + Activation( + precondition = "", + condition = "running_style==2&phase_laterhalf_random==0&order_rate<=50", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(150.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200571 -> [ + Activation( + precondition = "", + condition = "running_style==2&phase_random==1&order_rate<=50", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(550.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200572 -> [ + Activation( + precondition = "", + condition = "running_style==2&phase_random==1&order_rate<=50", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(150.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200581 -> [ + Activation( + precondition = "", + condition = "running_style==2&is_finalcorner_random==1&order_rate<=50", + duration = 18000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200582 -> [ + Activation( + precondition = "", + condition = "running_style==2&is_finalcorner_random==1&order_rate<=50", + duration = 18000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200591 -> [ + Activation( + precondition = "", + condition = "running_style==3&phase_random==1&order_rate>50", + duration = 24000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200592 -> [ + Activation( + precondition = "", + condition = "running_style==3&phase_random==1&order_rate>50", + duration = 24000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200601 -> [ + Activation( + precondition = "", + condition = "running_style==3&phase_random==2&order_rate>50", + duration = 18000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(4000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200602 -> [ + Activation( + precondition = "", + condition = "running_style==3&phase_random==2&order_rate>50", + duration = 18000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(2000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200611 -> [ + Activation( + precondition = "", + condition = "running_style==3&is_finalcorner==1&corner!=0&is_behind_in==1&change_order_onetime<0", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200612 -> [ + Activation( + precondition = "", + condition = "running_style==3&is_finalcorner==1&corner!=0&is_behind_in==1&change_order_onetime<0", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200621 -> [ + Activation( + precondition = "", + condition = "running_style==4&phase_random==1&distance_diff_rate>=75", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(550.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200622 -> [ + Activation( + precondition = "", + condition = "running_style==4&phase_random==1&distance_diff_rate>=75", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(150.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200631 -> [ + Activation( + precondition = "", + condition = "running_style==4&phase_random==2&distance_diff_rate>=50", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200632 -> [ + Activation( + precondition = "", + condition = "running_style==4&phase_random==2&distance_diff_rate>=50", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200641 -> [ + Activation( + precondition = "", + condition = "running_style==4&is_lastspurt==1&corner==0", + duration = 9000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(4000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200642 -> [ + Activation( + precondition = "", + condition = "running_style==4&is_lastspurt==1&corner==0", + duration = 9000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(2000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200651 -> [ + Activation( + precondition = "", + condition = "distance_type==1&straight_random==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(4000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200652 -> [ + Activation( + precondition = "", + condition = "distance_type==1&straight_random==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(2000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200662 -> [ + Activation( + precondition = "", + condition = "distance_type==1&phase_random==1&order_rate>50", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(150.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Accel(1000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200671 -> [ + Activation( + precondition = "", + condition = "distance_type==1&phase_random==2&order_rate>50", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Accel(1000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200672 -> [ + Activation( + precondition = "", + condition = "distance_type==1&phase_random==2&order_rate>50", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Accel(500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200681 -> [ + Activation( + precondition = "", + condition = "distance_type==2&phase_random==0&accumulatetime>=5&order_rate<=50", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200682 -> [ + Activation( + precondition = "", + condition = "distance_type==2&phase_random==0&accumulatetime>=5&order_rate<=50", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200691 -> [ + Activation( + precondition = "", + condition = "distance_type==2&phase_laterhalf_random==0&order_rate>50", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(550.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Current-Speed(-2000.decimal(-4)), + value-usage = Direct, + target = Ahead(18) + ), + ] + ), + ] + 200692 -> [ + Activation( + precondition = "", + condition = "distance_type==2&phase_laterhalf_random==0&order_rate>50", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(150.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Current-Speed(-500.decimal(-4)), + value-usage = Direct, + target = Ahead(18) + ), + ] + ), + ] + 200701 -> [ + Activation( + precondition = "", + condition = "distance_type==2&phase_random==2&order_rate>50", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(4000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200702 -> [ + Activation( + precondition = "", + condition = "distance_type==2&phase_random==2&order_rate>50", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(2000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200711 -> [ + Activation( + precondition = "", + condition = "distance_type==3&phase_random==1&order<=3", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(550.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200712 -> [ + Activation( + precondition = "", + condition = "distance_type==3&phase_random==1&order<=3", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(150.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200721 -> [ + Activation( + precondition = "", + condition = "distance_type==3&phase_random==1&order_rate<=50", + duration = 24000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200722 -> [ + Activation( + precondition = "", + condition = "distance_type==3&phase_random==1&order_rate<=50", + duration = 24000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200731 -> [ + Activation( + precondition = "", + condition = "distance_type==3&is_finalcorner==1&corner!=0&change_order_onetime>0", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Accel(1000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200732 -> [ + Activation( + precondition = "", + condition = "distance_type==3&is_finalcorner==1&corner!=0&change_order_onetime>0", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Accel(500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200741 -> [ + Activation( + precondition = "", + condition = "distance_type==4&straight_random==1", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(550.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200742 -> [ + Activation( + precondition = "", + condition = "distance_type==4&straight_random==1", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(150.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200751 -> [ + Activation( + precondition = "", + condition = "distance_type==4&is_finalcorner==1&corner!=0&lane_type==0", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200752 -> [ + Activation( + precondition = "", + condition = "distance_type==4&is_finalcorner==1&corner!=0&lane_type==0", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200761 -> [ + Activation( + precondition = "", + condition = "distance_type==4&hp_per<=30", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(550.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200762 -> [ + Activation( + precondition = "", + condition = "distance_type==4&hp_per<=30", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(150.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200771 -> [ + Activation( + precondition = "", + condition = "phase==1&order_rate<=50&temptation_count_behind>=1", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(-100.decimal(-4)), + value-usage = Direct, + target = Rushing-Behind(10) + ), + ] + ), + ] + 200772 -> [ + Activation( + precondition = "", + condition = "phase==1&order_rate<=50&temptation_count_behind>=1", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(-300.decimal(-4)), + value-usage = Direct, + target = Rushing-Behind(10) + ), + ] + ), + ] + 200781 -> [ + Activation( + precondition = "", + condition = "phase==1&order_rate>50&temptation_count_infront>=1", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(-100.decimal(-4)), + value-usage = Direct, + target = Rushing-Ahead(10) + ), + ] + ), + ] + 200791 -> [ + Activation( + precondition = "", + condition = "running_style_temptation_count_nige>=1&is_temptation==0", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Frenzy(50000.decimal(-4)), + value-usage = Direct, + target = Rushing-Style(Front-Runner) + ), + ] + ), + ] + 200801 -> [ + Activation( + precondition = "", + condition = "running_style_temptation_count_senko>=1&is_temptation==0", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Frenzy(50000.decimal(-4)), + value-usage = Direct, + target = Rushing-Style(Pace-Chaser) + ), + ] + ), + ] + 200811 -> [ + Activation( + precondition = "", + condition = "running_style_temptation_count_sashi>=1&is_temptation==0", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Frenzy(50000.decimal(-4)), + value-usage = Direct, + target = Rushing-Style(Late-Surger) + ), + ] + ), + ] + 200821 -> [ + Activation( + precondition = "", + condition = "running_style_temptation_count_oikomi>=1&is_temptation==0", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Frenzy(50000.decimal(-4)), + value-usage = Direct, + target = Rushing-Style(End-Closer) + ), + ] + ), + ] + 200831 -> [ + Activation( + precondition = "", + condition = "running_style_count_nige_otherself>=1&phase_random==0&accumulatetime>=5", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(-100.decimal(-4)), + value-usage = Direct, + target = Style(Front-Runner) + ), + ] + ), + ] + 200841 -> [ + Activation( + precondition = "", + condition = "running_style_count_nige_otherself>=1&phase_random==1", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(-100.decimal(-4)), + value-usage = Direct, + target = Style(Front-Runner) + ), + ] + ), + ] + 200851 -> [ + Activation( + precondition = "", + condition = "running_style_count_nige_otherself>=1&phase_random==2", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Current-Speed(-1500.decimal(-4)), + value-usage = Direct, + target = Style(Front-Runner) + ), + ] + ), + ] + 200861 -> [ + Activation( + precondition = "", + condition = "running_style_count_senko_otherself>=1&phase_random==0&accumulatetime>=5", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(-100.decimal(-4)), + value-usage = Direct, + target = Style(Pace-Chaser) + ), + ] + ), + ] + 200871 -> [ + Activation( + precondition = "", + condition = "running_style_count_senko_otherself>=1&phase_random==1", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(-100.decimal(-4)), + value-usage = Direct, + target = Style(Pace-Chaser) + ), + ] + ), + ] + 200881 -> [ + Activation( + precondition = "", + condition = "running_style_count_senko_otherself>=1&phase_random==2", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Current-Speed(-1500.decimal(-4)), + value-usage = Direct, + target = Style(Pace-Chaser) + ), + ] + ), + ] + 200891 -> [ + Activation( + precondition = "", + condition = "running_style_count_sashi_otherself>=1&phase_random==0&accumulatetime>=5", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(-100.decimal(-4)), + value-usage = Direct, + target = Style(Late-Surger) + ), + ] + ), + ] + 200901 -> [ + Activation( + precondition = "", + condition = "running_style_count_sashi_otherself>=1&phase_random==1", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(-100.decimal(-4)), + value-usage = Direct, + target = Style(Late-Surger) + ), + ] + ), + ] + 200911 -> [ + Activation( + precondition = "", + condition = "running_style_count_sashi_otherself>=1&phase_random==2", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Current-Speed(-1500.decimal(-4)), + value-usage = Direct, + target = Style(Late-Surger) + ), + ] + ), + ] + 200921 -> [ + Activation( + precondition = "", + condition = "running_style_count_oikomi_otherself>=1&phase_random==0&accumulatetime>=5", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(-100.decimal(-4)), + value-usage = Direct, + target = Style(End-Closer) + ), + ] + ), + ] + 200931 -> [ + Activation( + precondition = "", + condition = "running_style_count_oikomi_otherself>=1&phase_random==1", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(-100.decimal(-4)), + value-usage = Direct, + target = Style(End-Closer) + ), + ] + ), + ] + 200941 -> [ + Activation( + precondition = "", + condition = "running_style_count_oikomi_otherself>=1&phase_random==2", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Current-Speed(-1500.decimal(-4)), + value-usage = Direct, + target = Style(End-Closer) + ), + ] + ), + ] + 200951 -> [ + Activation( + precondition = "", + condition = "track_id==10101", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Stamina(600000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200952 -> [ + Activation( + precondition = "", + condition = "track_id==10101", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Stamina(400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200953 -> [ + Activation( + precondition = "", + condition = "track_id==10101", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Stamina(-400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200961 -> [ + Activation( + precondition = "", + condition = "distance_type==1&straight_random==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200962 -> [ + Activation( + precondition = "", + condition = "distance_type==1&straight_random==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200971 -> [ + Activation( + precondition = "", + condition = "distance_type==1&all_corner_random==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200972 -> [ + Activation( + precondition = "", + condition = "distance_type==1&all_corner_random==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200981 -> [ + Activation( + precondition = "", + condition = "distance_type==1&phase==1&bashin_diff_behind>=3&order==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200982 -> [ + Activation( + precondition = "", + condition = "distance_type==1&phase==1&bashin_diff_behind>=3&order==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200991 -> [ + Activation( + precondition = "", + condition = "distance_type==1&phase_laterhalf_random==1&order>=2&order_rate<=50", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(4000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 200992 -> [ + Activation( + precondition = "", + condition = "distance_type==1&phase_laterhalf_random==1&order>=2&order_rate<=50", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(2000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201001 -> [ + Activation( + precondition = "", + condition = "distance_type==1&phase_random==1", + duration = 40000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Lane-Speed(350.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Accel(3000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201002 -> [ + Activation( + precondition = "", + condition = "distance_type==1&phase_random==1", + duration = 40000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Lane-Speed(250.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Accel(2000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201011 -> [ + Activation( + precondition = "", + condition = "distance_type==1&phase_random==0&order_rate<=50&accumulatetime>=5", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Current-Speed(-2500.decimal(-4)), + value-usage = Direct, + target = Behind(18) + ), + ] + ), + ] + 201012 -> [ + Activation( + precondition = "", + condition = "distance_type==1&phase_random==0&order_rate<=50&accumulatetime>=5", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Current-Speed(-2000.decimal(-4)), + value-usage = Direct, + target = Behind(18) + ), + ] + ), + ] + 201021 -> [ + Activation( + precondition = "", + condition = "distance_type==1&phase_random==0&order_rate>50&accumulatetime>=5", + duration = 12000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(-300.decimal(-4)), + value-usage = Direct, + target = Ahead(18) + ), + Ability( + ability-type = Accel(-2000.decimal(-4)), + value-usage = Direct, + target = Ahead(18) + ), + ] + ), + ] + 201022 -> [ + Activation( + precondition = "", + condition = "distance_type==1&phase_random==0&order_rate>50&accumulatetime>=5", + duration = 12000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(-100.decimal(-4)), + value-usage = Direct, + target = Ahead(18) + ), + Ability( + ability-type = Accel(-500.decimal(-4)), + value-usage = Direct, + target = Ahead(18) + ), + ] + ), + ] + 201031 -> [ + Activation( + precondition = "", + condition = "distance_type==2&straight_random==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201032 -> [ + Activation( + precondition = "", + condition = "distance_type==2&straight_random==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201041 -> [ + Activation( + precondition = "", + condition = "distance_type==2&all_corner_random==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201042 -> [ + Activation( + precondition = "", + condition = "distance_type==2&all_corner_random==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201051 -> [ + Activation( + precondition = "", + condition = "distance_type==2&phase_random==1&order_rate<=50", + duration = 24000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201052 -> [ + Activation( + precondition = "", + condition = "distance_type==2&phase_random==1&order_rate<=50", + duration = 24000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201061 -> [ + Activation( + precondition = "", + condition = "distance_type==2&phase==1&change_order_onetime<0", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(4000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201062 -> [ + Activation( + precondition = "", + condition = "distance_type==2&phase==1&change_order_onetime<0", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(2000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201071 -> [ + Activation( + precondition = "", + condition = "distance_type==2&is_overtake==1&accumulatetime>=5", + duration = 24000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201072 -> [ + Activation( + precondition = "", + condition = "distance_type==2&is_overtake==1&accumulatetime>=5", + duration = 24000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201081 -> [ + Activation( + precondition = "", + condition = "distance_type==2&phase_random==1&order<=3", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Current-Speed(-2000.decimal(-4)), + value-usage = Direct, + target = Behind(5) + ), + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201082 -> [ + Activation( + precondition = "", + condition = "distance_type==2&phase_random==1&order<=3", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Current-Speed(-1500.decimal(-4)), + value-usage = Direct, + target = Behind(5) + ), + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201091 -> [ + Activation( + precondition = "", + condition = "distance_type==2&phase_random==0&order_rate>50&accumulatetime>=3", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(-3000.decimal(-4)), + value-usage = Direct, + target = Ahead(18) + ), + ] + ), + ] + 201092 -> [ + Activation( + precondition = "", + condition = "distance_type==2&phase_random==0&order_rate>50&accumulatetime>=3", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(-1000.decimal(-4)), + value-usage = Direct, + target = Ahead(18) + ), + ] + ), + ] + 201101 -> [ + Activation( + precondition = "", + condition = "distance_type==3&straight_random==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201102 -> [ + Activation( + precondition = "", + condition = "distance_type==3&straight_random==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201111 -> [ + Activation( + precondition = "", + condition = "distance_type==3&all_corner_random==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201112 -> [ + Activation( + precondition = "", + condition = "distance_type==3&all_corner_random==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201121 -> [ + Activation( + precondition = "", + condition = "distance_type==3&phase_random==0", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Vision(150000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201122 -> [ + Activation( + precondition = "", + condition = "distance_type==3&phase_random==0", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Vision(100000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201131 -> [ + Activation( + precondition = "", + condition = "distance_type==3&phase_random==1&order_rate>50", + duration = 40000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Lane-Speed(350.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Accel(3000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201132 -> [ + Activation( + precondition = "", + condition = "distance_type==3&phase_random==1&order_rate>50", + duration = 40000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Lane-Speed(250.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Accel(2000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201141 -> [ + Activation( + precondition = "", + condition = "distance_type==3&is_move_lane==1&accumulatetime>=10@distance_type==3&is_move_lane==2&accumulatetime>=10", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(550.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201142 -> [ + Activation( + precondition = "", + condition = "distance_type==3&is_move_lane==1&accumulatetime>=10@distance_type==3&is_move_lane==2&accumulatetime>=10", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(150.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201151 -> [ + Activation( + precondition = "", + condition = "distance_type==3&phase_random==2&order_rate>50", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Current-Speed(-2500.decimal(-4)), + value-usage = Direct, + target = Ahead(18) + ), + ] + ), + ] + 201152 -> [ + Activation( + precondition = "", + condition = "distance_type==3&phase_random==2&order_rate>50", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Current-Speed(-1500.decimal(-4)), + value-usage = Direct, + target = Ahead(18) + ), + ] + ), + ] + 201161 -> [ + Activation( + precondition = "", + condition = "distance_type==3&phase==1&blocked_front_continuetime>=1", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(-300.decimal(-4)), + value-usage = Direct, + target = Ahead(18) + ), + ] + ), + ] + 201162 -> [ + Activation( + precondition = "", + condition = "distance_type==3&phase==1&blocked_front_continuetime>=1", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(-100.decimal(-4)), + value-usage = Direct, + target = Ahead(18) + ), + ] + ), + ] + 201171 -> [ + Activation( + precondition = "", + condition = "distance_type==4&straight_random==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201172 -> [ + Activation( + precondition = "", + condition = "distance_type==4&straight_random==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201181 -> [ + Activation( + precondition = "", + condition = "distance_type==4&all_corner_random==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201182 -> [ + Activation( + precondition = "", + condition = "distance_type==4&all_corner_random==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201191 -> [ + Activation( + precondition = "", + condition = "distance_type==4&phase_random==1&bashin_diff_behind>=1&order==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201192 -> [ + Activation( + precondition = "", + condition = "distance_type==4&phase_random==1&bashin_diff_behind>=1&order==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201201 -> [ + Activation( + precondition = "", + condition = "distance_type==4&is_overtake==1&accumulatetime>=5", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(550.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201202 -> [ + Activation( + precondition = "", + condition = "distance_type==4&is_overtake==1&accumulatetime>=5", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(150.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201211 -> [ + Activation( + precondition = "", + condition = "distance_type==4&phase==2&change_order_onetime<0", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201212 -> [ + Activation( + precondition = "", + condition = "distance_type==4&phase==2&change_order_onetime<0", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201221 -> [ + Activation( + precondition = "", + condition = "distance_type==4&phase_random==1&order>=5", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(-100.decimal(-4)), + value-usage = Direct, + target = Ahead(5) + ), + Ability( + ability-type = HP(350.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201222 -> [ + Activation( + precondition = "", + condition = "distance_type==4&phase_random==1&order>=5", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(-50.decimal(-4)), + value-usage = Direct, + target = Ahead(5) + ), + Ability( + ability-type = HP(150.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201231 -> [ + Activation( + precondition = "", + condition = "distance_type==4&phase_random==2", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Vision(-100000.decimal(-4)), + value-usage = Direct, + target = Ahead(18) + ), + ] + ), + ] + 201232 -> [ + Activation( + precondition = "", + condition = "distance_type==4&phase_random==2", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Vision(-50000.decimal(-4)), + value-usage = Direct, + target = Ahead(18) + ), + ] + ), + ] + 201241 -> [ + Activation( + precondition = "", + condition = "running_style==1&straight_random==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201242 -> [ + Activation( + precondition = "", + condition = "running_style==1&straight_random==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201251 -> [ + Activation( + precondition = "", + condition = "running_style==1&all_corner_random==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201252 -> [ + Activation( + precondition = "", + condition = "running_style==1&all_corner_random==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201261 -> [ + Activation( + precondition = "", + condition = "running_style==1&phase==0&blocked_front_continuetime>=1@running_style==1&phase==0&blocked_side_continuetime>=1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Lane-Speed(350.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Lane-Change(5000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201262 -> [ + Activation( + precondition = "", + condition = "running_style==1&phase==0&blocked_front_continuetime>=1@running_style==1&phase==0&blocked_side_continuetime>=1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Lane-Speed(250.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Lane-Change(5000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201272 -> [ + Activation( + precondition = "", + condition = "running_style==1&phase<=1&change_order_onetime>0&accumulatetime>=5@running_style==1&phase<=1&blocked_side_continuetime>=2&accumulatetime>=5", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201281 -> [ + Activation( + precondition = "", + condition = "running_style==1&slope==1&accumulatetime>=10", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(550.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201282 -> [ + Activation( + precondition = "", + condition = "running_style==1&slope==1&accumulatetime>=10", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(150.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201291 -> [ + Activation( + precondition = "", + condition = "running_style==1&phase_random==1&order>=2", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(4000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201292 -> [ + Activation( + precondition = "", + condition = "running_style==1&phase_random==1&order>=2", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(2000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201302 -> [ + Activation( + precondition = "", + condition = "running_style==1&phase_random==0&order>=2&accumulatetime>=5", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(-1000.decimal(-4)), + value-usage = Direct, + target = Ahead(18) + ), + ] + ), + ] + 201311 -> [ + Activation( + precondition = "", + condition = "running_style==2&straight_random==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201312 -> [ + Activation( + precondition = "", + condition = "running_style==2&straight_random==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201321 -> [ + Activation( + precondition = "", + condition = "running_style==2&all_corner_random==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201322 -> [ + Activation( + precondition = "", + condition = "running_style==2&all_corner_random==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201331 -> [ + Activation( + precondition = "", + condition = "running_style==2&is_move_lane==1@running_style==2&is_move_lane==2", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(3000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201332 -> [ + Activation( + precondition = "", + condition = "running_style==2&is_move_lane==1@running_style==2&is_move_lane==2", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(2000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201341 -> [ + Activation( + precondition = "", + condition = "running_style==2&down_slope_random==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(3000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201342 -> [ + Activation( + precondition = "", + condition = "running_style==2&down_slope_random==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(2000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201351 -> [ + Activation( + precondition = "", + condition = "running_style==2&phase_random==1", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(550.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201352 -> [ + Activation( + precondition = "", + condition = "running_style==2&phase_random==1", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(150.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201361 -> [ + Activation( + precondition = "", + condition = "running_style==2&phase_random==1&order_rate>40", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(3000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201362 -> [ + Activation( + precondition = "", + condition = "running_style==2&phase_random==1&order_rate>40", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(2000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201371 -> [ + Activation( + precondition = "", + condition = "running_style==2&phase_random==2&order_rate<=50", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Vision(-50000.decimal(-4)), + value-usage = Direct, + target = Behind(18) + ), + ] + ), + ] + 201372 -> [ + Activation( + precondition = "", + condition = "running_style==2&phase_random==2&order_rate<=50", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Vision(-30000.decimal(-4)), + value-usage = Direct, + target = Behind(18) + ), + ] + ), + ] + 201381 -> [ + Activation( + precondition = "", + condition = "running_style==3&straight_random==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201382 -> [ + Activation( + precondition = "", + condition = "running_style==3&straight_random==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201391 -> [ + Activation( + precondition = "", + condition = "running_style==3&all_corner_random==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201392 -> [ + Activation( + precondition = "", + condition = "running_style==3&all_corner_random==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201401 -> [ + Activation( + precondition = "", + condition = "running_style==3&is_overtake==1&accumulatetime>=5", + duration = 40000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(3000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201402 -> [ + Activation( + precondition = "", + condition = "running_style==3&is_overtake==1&accumulatetime>=5", + duration = 40000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(2000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201411 -> [ + Activation( + precondition = "", + condition = "running_style==3&up_slope_random==1", + duration = 24000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201412 -> [ + Activation( + precondition = "", + condition = "running_style==3&up_slope_random==1", + duration = 24000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201421 -> [ + Activation( + precondition = "", + condition = "running_style==3&phase_random==2", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(550.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201422 -> [ + Activation( + precondition = "", + condition = "running_style==3&phase_random==2", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(150.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201431 -> [ + Activation( + precondition = "", + condition = "running_style==3&phase_random==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Vision(150000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201432 -> [ + Activation( + precondition = "", + condition = "running_style==3&phase_random==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Vision(50000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201441 -> [ + Activation( + precondition = "", + condition = "running_style==3&phase_random==2&order_rate>50", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(-300.decimal(-4)), + value-usage = Direct, + target = Sympathizers + ), + ] + ), + ] + 201442 -> [ + Activation( + precondition = "", + condition = "running_style==3&phase_random==2&order_rate>50", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(-100.decimal(-4)), + value-usage = Direct, + target = Sympathizers + ), + ] + ), + ] + 201451 -> [ + Activation( + precondition = "", + condition = "running_style==4&straight_random==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201452 -> [ + Activation( + precondition = "", + condition = "running_style==4&straight_random==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201461 -> [ + Activation( + precondition = "", + condition = "running_style==4&all_corner_random==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201462 -> [ + Activation( + precondition = "", + condition = "running_style==4&all_corner_random==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201471 -> [ + Activation( + precondition = "", + condition = "running_style==4&is_move_lane==1@running_style==4&is_move_lane==2", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Vision(100000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201472 -> [ + Activation( + precondition = "", + condition = "running_style==4&is_move_lane==1@running_style==4&is_move_lane==2", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Vision(50000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201481 -> [ + Activation( + precondition = "", + condition = "running_style==4&slope==2&accumulatetime>=10", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(550.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201482 -> [ + Activation( + precondition = "", + condition = "running_style==4&slope==2&accumulatetime>=10", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(150.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201491 -> [ + Activation( + precondition = "", + condition = "running_style==4&blocked_front_continuetime>=1&accumulatetime>=10", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(550.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201492 -> [ + Activation( + precondition = "", + condition = "running_style==4&blocked_front_continuetime>=1&accumulatetime>=10", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(150.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201501 -> [ + Activation( + precondition = "", + condition = "running_style==4&phase_random==2&order_rate>50", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Vision(150000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201502 -> [ + Activation( + precondition = "", + condition = "running_style==4&phase_random==2&order_rate>50", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Vision(50000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201511 -> [ + Activation( + precondition = "", + condition = "running_style==4&phase_random==2&order>=2", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Current-Speed(-2500.decimal(-4)), + value-usage = Direct, + target = Sympathizers + ), + ] + ), + ] + 201512 -> [ + Activation( + precondition = "", + condition = "running_style==4&phase_random==2&order>=2", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Current-Speed(-1500.decimal(-4)), + value-usage = Direct, + target = Sympathizers + ), + ] + ), + ] + 201521 -> [ + Activation( + precondition = "", + condition = "running_style==1", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Wit(600000.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Vision(100000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201522 -> [ + Activation( + precondition = "", + condition = "running_style==1", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Wit(400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Vision(50000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201531 -> [ + Activation( + precondition = "", + condition = "running_style==2", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Wit(600000.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Vision(100000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201532 -> [ + Activation( + precondition = "", + condition = "running_style==2", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Wit(400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Vision(50000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201541 -> [ + Activation( + precondition = "", + condition = "running_style==3", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Wit(600000.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Vision(100000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201542 -> [ + Activation( + precondition = "", + condition = "running_style==3", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Wit(400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Vision(50000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201551 -> [ + Activation( + precondition = "", + condition = "running_style==4", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Wit(600000.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Vision(100000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201552 -> [ + Activation( + precondition = "", + condition = "running_style==4", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Wit(400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Vision(50000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201561 -> [ + Activation( + precondition = "", + condition = "random_lot==50&post_number==7", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Speed(600000.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Passive-Stamina(600000.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Passive-Power(600000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201562 -> [ + Activation( + precondition = "", + condition = "random_lot==50&post_number==7", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Speed(400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Passive-Stamina(400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Passive-Power(400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201571 -> [ + Activation( + precondition = "", + condition = "remain_distance<=778&remain_distance>=776", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(150.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201581 -> [ + Activation( + precondition = "", + condition = "up_slope_random==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(2000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201591 -> [ + Activation( + precondition = "", + condition = "near_count>=3&accumulatetime>=5", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201592 -> [ + Activation( + precondition = "", + condition = "near_count>=3&accumulatetime>=5", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201601 -> [ + Activation( + precondition = "", + condition = "activate_count_start>=3", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(2000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201611 -> [ + Activation( + precondition = "", + condition = "activate_count_middle>=3", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201612 -> [ + Activation( + precondition = "", + condition = "activate_count_middle>=3", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201621 -> [ + Activation( + precondition = "", + condition = "activate_count_end_after>=3", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(150.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201631 -> [ + Activation( + precondition = "", + condition = "same_skill_horse_count>=5", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Speed(400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201641 -> [ + Activation( + precondition = "", + condition = "same_skill_horse_count==1", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Speed(400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201651 -> [ + Activation( + precondition = "", + condition = "infront_near_lane_time>=3&accumulatetime>=10", + duration = 30000.decimal(-4), + cooldown = 300000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201661 -> [ + Activation( + precondition = "", + condition = "behind_near_lane_time>=3&accumulatetime>=10", + duration = 30000.decimal(-4), + cooldown = 300000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201671 -> [ + Activation( + precondition = "", + condition = "ground_type==2&phase==1&blocked_side_continuetime>=2", + duration = 24000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201672 -> [ + Activation( + precondition = "", + condition = "ground_type==2&phase==1&blocked_side_continuetime>=2", + duration = 24000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201681 -> [ + Activation( + precondition = "", + condition = "ground_type==2&phase_random==2", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Lane-Speed(350.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Accel(3000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201682 -> [ + Activation( + precondition = "", + condition = "ground_type==2&phase_random==2", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Lane-Speed(250.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Accel(2000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201691 -> [ + Activation( + precondition = "", + condition = "running_style==3&phase_laterhalf_random==0&order_rate>=50", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(550.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201692 -> [ + Activation( + precondition = "", + condition = "running_style==3&phase_laterhalf_random==0&order_rate>=50", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(150.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201701 -> [ + Activation( + precondition = "", + condition = "distance_type==3&is_lastspurt==1&corner==0&order_rate>=20&order_rate<=60", + duration = 24000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201702 -> [ + Activation( + precondition = "", + condition = "distance_type==3&is_lastspurt==1&corner==0&order_rate>=20&order_rate<=60", + duration = 24000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201801 -> [ + Activation( + precondition = "", + condition = "ground_condition==1", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Speed(-400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 201902 -> [ + Activation( + precondition = "", + condition = "running_style==2&phase_random==2&order_rate<=50", + duration = 18000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(2000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 202002 -> [ + Activation( + precondition = "", + condition = "ground_type==2&phase_random==1&order_rate>=50", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(150.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 202022 -> [ + Activation( + precondition = "", + condition = "running_style==4&phase_random==1&order_rate>=50", + duration = 40000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 202032 -> [ + Activation( + precondition = "", + condition = "distance_rate_after_random==50", + duration = 18000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = HP(-10000.decimal(-4)), + value-usage = Multiply-Random, + target = Self + ), + ] + ), + ] + 202051 -> [ + Activation( + precondition = "", + condition = "running_style==1", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Great-Escape, + value-usage = Direct, + target = Self + ), + ] + ), + ] + 210011 -> [ + Activation( + precondition = "", + condition = "phase_random==1", + duration = 18000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Team-Speed, + target = Self + ), + ] + ), + ] + 210012 -> [ + Activation( + precondition = "", + condition = "phase_random==1", + duration = 18000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Team-Speed, + target = Self + ), + ] + ), + ] + 210021 -> [ + Activation( + precondition = "", + condition = "phase_random==1", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(550.decimal(-4)), + value-usage = Team-Stamina, + target = Self + ), + ] + ), + ] + 210022 -> [ + Activation( + precondition = "", + condition = "phase_random==1", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(150.decimal(-4)), + value-usage = Team-Stamina, + target = Self + ), + ] + ), + ] + 210031 -> [ + Activation( + precondition = "", + condition = "phase_random==2", + duration = 12000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(4000.decimal(-4)), + value-usage = Team-Power, + target = Self + ), + ] + ), + ] + 210032 -> [ + Activation( + precondition = "", + condition = "phase_random==2", + duration = 12000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(2000.decimal(-4)), + value-usage = Team-Power, + target = Self + ), + ] + ), + ] + 210041 -> [ + Activation( + precondition = "", + condition = "phase_random==2", + duration = 18000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Team-Guts, + target = Self + ), + Ability( + ability-type = Accel(3000.decimal(-4)), + value-usage = Team-Guts, + target = Self + ), + ] + ), + ] + 210042 -> [ + Activation( + precondition = "", + condition = "phase_random==2", + duration = 18000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(500.decimal(-4)), + value-usage = Team-Guts, + target = Self + ), + Ability( + ability-type = Accel(1000.decimal(-4)), + value-usage = Team-Guts, + target = Self + ), + ] + ), + ] + 210051 -> [ + Activation( + precondition = "", + condition = "phase_random==0", + duration = 40000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Lane-Speed(350.decimal(-4)), + value-usage = Team-Wit, + target = Self + ), + Ability( + ability-type = Vision(150000.decimal(-4)), + value-usage = Team-Wit, + target = Self + ), + ] + ), + ] + 210052 -> [ + Activation( + precondition = "", + condition = "phase_random==0", + duration = 40000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Lane-Speed(150.decimal(-4)), + value-usage = Team-Wit, + target = Self + ), + Ability( + ability-type = Vision(50000.decimal(-4)), + value-usage = Team-Wit, + target = Self + ), + ] + ), + ] + 300011 -> [ + Activation( + precondition = "", + condition = "track_id==10008", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Stamina(400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 300021 -> [ + Activation( + precondition = "", + condition = "season==4", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Speed(800000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 300031 -> [ + Activation( + precondition = "", + condition = "always==1", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Speed(400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 300041 -> [ + Activation( + precondition = "", + condition = "always==1", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Speed(-400000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 300051 -> [ + Activation( + precondition = "", + condition = "remain_distance>=800&remain_distance<=850", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Current-Speed(-3000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 300061 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&corner==0", + duration = 50000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(3500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 300071 -> [ + Activation( + precondition = "", + condition = "is_exist_chara_id==1002", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Speed(400000.decimal(-4)), + value-usage = Direct, + target = Specific-Character(Character-id(1002)) + ), + ] + ), + ] + 300081 -> [ + Activation( + precondition = "", + condition = "is_exist_chara_id==1002", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Stamina(400000.decimal(-4)), + value-usage = Direct, + target = Specific-Character(Character-id(1002)) + ), + ] + ), + ] + 300091 -> [ + Activation( + precondition = "", + condition = "is_exist_chara_id==1002", + duration = -1.decimal, + cooldown = 0.decimal, + abilities = [ + Ability( + ability-type = Passive-Power(400000.decimal(-4)), + value-usage = Direct, + target = Specific-Character(Character-id(1002)) + ), + ] + ), + ] + 300101 -> [ + Activation( + precondition = "", + condition = "is_exist_chara_id==1002&remain_distance_viewer_id>=800&remain_distance_viewer_id<=850", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(550.decimal(-4)), + value-usage = Direct, + target = Specific-Character(Character-id(1002)) + ), + ] + ), + ] + 900011 -> [ + Activation( + precondition = "", + condition = "phase>=2&order>=1&order_rate<=50&change_order_onetime<0", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Accel(500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 900021 -> [ + Activation( + precondition = "", + condition = "distance_rate>=50&order==1&bashin_diff_behind>=1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 900031 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&corner==0&order<=3&bashin_diff_infront<=1&is_overtake==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 900041 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&order<=5&order_rate<=50", + duration = 24000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(2000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 900051 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&corner==0&order_rate<=30&behind_near_lane_time_set1>=1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 900061 -> [ + Activation( + precondition = "", + condition = "order>=2&order<=5&order_rate<=50&remain_distance<=201&remain_distance>=199", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 900071 -> [ + Activation( + precondition = "", + condition = "distance_rate>=50&distance_rate<=60&order_rate>50", + duration = 36000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 900081 -> [ + Activation( + precondition = "", + condition = "order>=3&order_rate<=50&remain_distance<=200&bashin_diff_infront<=1@order>=3&order_rate<=50&remain_distance<=200&bashin_diff_behind<=1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 900091 -> [ + Activation( + precondition = "", + condition = "distance_rate>=50&order==1&bashin_diff_behind<=1@distance_rate>=50&order==2&is_overtake==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(500.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Accel(1000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 900101 -> [ + Activation( + precondition = "", + condition = "is_finalcorner_laterhalf==1&corner!=0&order>=3&order_rate<=40", + duration = 24000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(2000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 900111 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&corner==0&change_order_onetime<0&order>=3", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 900121 -> [ + Activation( + precondition = "is_finalcorner==1&is_behind_in==1&change_order_onetime<0&order_rate>=40", + condition = "is_finalcorner==1&corner==0", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 900131 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&corner!=0&distance_diff_rate<=30", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 900141 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&corner==0&hp_per>=30&order<=2", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(500.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Accel(1000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 900151 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&bashin_diff_behind<=1&order<=4@is_finalcorner==1&bashin_diff_infront<=1&order<=4", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 900161 -> [ + Activation( + precondition = "phase==1&blocked_side_continuetime>=2", + condition = "is_finalcorner==1&order>=2&order_rate<=75&is_behind_in==1&change_order_onetime<0", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + Activation( + precondition = "", + condition = "is_finalcorner==1&order>=2&order_rate<=75&is_behind_in==1&change_order_onetime<0", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 900171 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&change_order_up_end_after>=3&corner==0", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 900181 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&corner!=0&order>=3&change_order_onetime<0", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 900191 -> [ + Activation( + precondition = "", + condition = "change_order_up_end_after>=2", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Lane-Speed(150.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 900201 -> [ + Activation( + precondition = "", + condition = "phase>=2&corner!=0&order==1", + duration = 24000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(2000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 900211 -> [ + Activation( + precondition = "", + condition = "distance_rate>=50&corner==0&order_rate>=70&order_rate<=75&is_overtake==1@distance_rate>=50&corner==0&order_rate<=30&order_rate>=20", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Accel(500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 900221 -> [ + Activation( + precondition = "", + condition = "distance_rate>=50&order>=2&order_rate<=40&blocked_side_continuetime>=2", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 900231 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&change_order_onetime<0&order<=4", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 900241 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&blocked_side_continuetime>=2&order<=3", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(500.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Accel(1000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 900251 -> [ + Activation( + precondition = "", + condition = "distance_rate>=50&order_rate>=40&order_rate<=70", + duration = 36000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(500.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Current-Speed(-250.decimal(-4)), + value-usage = Direct, + target = Ahead(5) + ), + ] + ), + ] + 900261 -> [ + Activation( + precondition = "", + condition = "is_badstart==0&temptation_count==0&order<=3&is_finalcorner==1&corner==0", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 900271 -> [ + Activation( + precondition = "", + condition = "phase>=2&corner!=0&order_rate>=65&order_rate<=70", + duration = 24000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(2000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 900281 -> [ + Activation( + precondition = "", + condition = "distance_rate>=45&distance_rate<=60&order>=3&order_rate<=50&hp_per<=70", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(500.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Accel(1000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 900301 -> [ + Activation( + precondition = "is_finalcorner==1&order<=4&change_order_onetime<0", + condition = "is_finalcorner==1&corner==0", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 900321 -> [ + Activation( + precondition = "", + condition = "distance_rate>=50&corner!=0&order>=3&order_rate<=40", + duration = 24000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(150.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Target-Speed(500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 900351 -> [ + Activation( + precondition = "is_finalcorner==1&blocked_side_continuetime>=2", + condition = "is_finalcorner==1&corner==0&order<=5", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 900371 -> [ + Activation( + precondition = "", + condition = "is_badstart==0&temptation_count==0&order>=3&is_finalcorner==1&corner==0", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 900381 -> [ + Activation( + precondition = "", + condition = "distance_rate>=50&distance_rate<=65&order>=2&order_rate<=40&change_order_onetime<0", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(500.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Accel(1000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 900391 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&corner==0&blocked_side_continuetime>=2", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 900401 -> [ + Activation( + precondition = "", + condition = "distance_rate>=50&order_rate>=40&order_rate<=70&is_overtake==1", + duration = 36000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(1000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 900411 -> [ + Activation( + precondition = "", + condition = "distance_rate>=50&order<=3&blocked_side_continuetime>=2", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 900451 -> [ + Activation( + precondition = "", + condition = "phase_random==1&order>=2&order_rate<=40", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(350.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 900461 -> [ + Activation( + precondition = "", + condition = "phase==1&corner==0&order<=2&bashin_diff_behind<=1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(500.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Accel(1000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 900481 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&corner==0&order>=2&order_rate<=30&overtake_target_time>=2@is_finalcorner==1&corner==0&order_rate<=20&change_order_onetime<0", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 900501 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&order_rate>=40&order_rate<=75&is_overtake==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 900521 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&corner!=0&order_rate>50&near_count>=1", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(150.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 900561 -> [ + Activation( + precondition = "", + condition = "phase>=2&order>=3&blocked_front==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Accel(500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 900581 -> [ + Activation( + precondition = "", + condition = "phase>=2&corner!=0&order>=3&change_order_onetime<0", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(500.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Accel(1000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 900591 -> [ + Activation( + precondition = "", + condition = "phase>=2&corner!=0&is_finalcorner==0&temptation_count==0&order_rate>=50&order_rate<=70@phase==1&corner!=0&is_finalcorner==1&temptation_count==0&order_rate>=50&order_rate<=70", + duration = 24000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(2000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 900601 -> [ + Activation( + precondition = "", + condition = "phase>=2&order==3&bashin_diff_behind<=1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 900611 -> [ + Activation( + precondition = "", + condition = "temptation_count==0&remain_distance<=201&remain_distance>=199&order>=4&order_rate<=70", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 910011 -> [ + Activation( + precondition = "", + condition = "phase==1&order>=2&order_rate<=70&activate_count_middle>=2", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(150.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 910031 -> [ + Activation( + precondition = "is_finalcorner==1&is_overtake==1&order<=5&order_rate<=50&overtake_target_no_order_up_time>=2", + condition = "is_finalcorner==1&corner==0", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(2500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 910041 -> [ + Activation( + precondition = "", + condition = "distance_rate>=50&activate_count_heal>=1&order<=3", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 910061 -> [ + Activation( + precondition = "", + condition = "activate_count_heal>=3&distance_rate>=50", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(500.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Accel(1000.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = HP(50.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 910111 -> [ + Activation( + precondition = "", + condition = "phase==1&change_order_onetime>0&order_rate>=40", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(350.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 910131 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&hp_per<=45&order<=3&order_rate<=50&bashin_diff_behind<=1&overtake_target_time>=1", + duration = 36000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 910141 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&corner!=0&is_overtake==1&order>=4&order_rate<=75", + duration = 24000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(2000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 910171 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&order_rate<=40&overtake_target_time>=2", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 910181 -> [ + Activation( + precondition = "", + condition = "phase==1&order>=3&order_rate<=50&is_overtake==1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 910231 -> [ + Activation( + precondition = "", + condition = "order_rate_in40_continue==1&phase==1&distance_rate>=50&order>=2&order_rate<=40", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 910241 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&corner!=0&order_rate<=40&change_order_onetime<0", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + Activation( + precondition = "", + condition = "is_finalcorner==1&corner!=0&order_rate>=50&order_rate<=80&change_order_onetime<0", + duration = 24000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Accel(2000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 910301 -> [ + Activation( + precondition = "", + condition = "phase==1&order>=2&order_rate<=50&overtake_target_time>=1", + duration = 0.decimal, + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = HP(150.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = HP(-25.decimal(-4)), + value-usage = Direct, + target = Ahead(18) + ), + ] + ), + ] + 910401 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&corner!=0&order_rate>=30&order_rate<=70&blocked_side_continuetime>=2", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(500.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Accel(1000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 910451 -> [ + Activation( + precondition = "", + condition = "is_finalcorner==1&corner==0&order<=4&bashin_diff_infront<=1", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(500.decimal(-4)), + value-usage = Direct, + target = Self + ), + Ability( + ability-type = Accel(1000.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + 910561 -> [ + Activation( + precondition = "", + condition = "distance_rate>=50&order_rate>=40&overtake_target_time>=2", + duration = 30000.decimal(-4), + cooldown = 5000000.decimal(-4), + abilities = [ + Ability( + ability-type = Target-Speed(1500.decimal(-4)), + value-usage = Direct, + target = Self + ), + ] + ), + ] + _ -> Nil + +// Get the owner of a unique skill. +// If the skill is not unique, or if there is no skill with the given ID, +// the result is Nothing. +pub fun unique-owner(s: skill-id): maybe + match s.game-id + 10071 -> Just(Trainee-id(100701)) + 10081 -> Just(Trainee-id(100801)) + 10091 -> Just(Trainee-id(100901)) + 10111 -> Just(Trainee-id(101101)) + 10141 -> Just(Trainee-id(101401)) + 10181 -> Just(Trainee-id(101801)) + 10241 -> Just(Trainee-id(102401)) + 10271 -> Just(Trainee-id(102701)) + 10321 -> Just(Trainee-id(103201)) + 10351 -> Just(Trainee-id(103501)) + 10411 -> Just(Trainee-id(104101)) + 10451 -> Just(Trainee-id(104501)) + 10521 -> Just(Trainee-id(105201)) + 10561 -> Just(Trainee-id(105601)) + 10601 -> Just(Trainee-id(106001)) + 10611 -> Just(Trainee-id(106101)) + 100011 -> Just(Trainee-id(100101)) + 100021 -> Just(Trainee-id(100201)) + 100031 -> Just(Trainee-id(100301)) + 100041 -> Just(Trainee-id(100401)) + 100051 -> Just(Trainee-id(100501)) + 100061 -> Just(Trainee-id(100601)) + 100071 -> Just(Trainee-id(100701)) + 100081 -> Just(Trainee-id(100801)) + 100091 -> Just(Trainee-id(100901)) + 100101 -> Just(Trainee-id(101001)) + 100111 -> Just(Trainee-id(101101)) + 100121 -> Just(Trainee-id(101201)) + 100131 -> Just(Trainee-id(101301)) + 100141 -> Just(Trainee-id(101401)) + 100151 -> Just(Trainee-id(101501)) + 100161 -> Just(Trainee-id(101601)) + 100171 -> Just(Trainee-id(101701)) + 100181 -> Just(Trainee-id(101801)) + 100191 -> Just(Trainee-id(101901)) + 100201 -> Just(Trainee-id(102001)) + 100211 -> Just(Trainee-id(102101)) + 100221 -> Just(Trainee-id(102201)) + 100231 -> Just(Trainee-id(102301)) + 100241 -> Just(Trainee-id(102401)) + 100251 -> Just(Trainee-id(102501)) + 100261 -> Just(Trainee-id(102601)) + 100271 -> Just(Trainee-id(102701)) + 100281 -> Just(Trainee-id(102801)) + 100301 -> Just(Trainee-id(103001)) + 100321 -> Just(Trainee-id(103201)) + 100351 -> Just(Trainee-id(103501)) + 100371 -> Just(Trainee-id(103701)) + 100381 -> Just(Trainee-id(103801)) + 100391 -> Just(Trainee-id(103901)) + 100401 -> Just(Trainee-id(104001)) + 100411 -> Just(Trainee-id(104101)) + 100451 -> Just(Trainee-id(104501)) + 100461 -> Just(Trainee-id(104601)) + 100481 -> Just(Trainee-id(104801)) + 100501 -> Just(Trainee-id(105001)) + 100521 -> Just(Trainee-id(105201)) + 100561 -> Just(Trainee-id(105601)) + 100581 -> Just(Trainee-id(105801)) + 100591 -> Just(Trainee-id(105901)) + 100601 -> Just(Trainee-id(106001)) + 100611 -> Just(Trainee-id(106101)) + 110011 -> Just(Trainee-id(100102)) + 110031 -> Just(Trainee-id(100302)) + 110041 -> Just(Trainee-id(100402)) + 110061 -> Just(Trainee-id(100602)) + 110111 -> Just(Trainee-id(101102)) + 110131 -> Just(Trainee-id(101302)) + 110141 -> Just(Trainee-id(101402)) + 110171 -> Just(Trainee-id(101702)) + 110181 -> Just(Trainee-id(101802)) + 110231 -> Just(Trainee-id(102302)) + 110241 -> Just(Trainee-id(102402)) + 110301 -> Just(Trainee-id(103002)) + 110401 -> Just(Trainee-id(104002)) + 110451 -> Just(Trainee-id(104502)) + 110561 -> Just(Trainee-id(105602)) + 900011 -> Just(Trainee-id(100101)) + 900021 -> Just(Trainee-id(100201)) + 900031 -> Just(Trainee-id(100301)) + 900041 -> Just(Trainee-id(100401)) + 900051 -> Just(Trainee-id(100501)) + 900061 -> Just(Trainee-id(100601)) + 900071 -> Just(Trainee-id(100701)) + 900081 -> Just(Trainee-id(100801)) + 900091 -> Just(Trainee-id(100901)) + 900101 -> Just(Trainee-id(101001)) + 900111 -> Just(Trainee-id(101101)) + 900121 -> Just(Trainee-id(101201)) + 900131 -> Just(Trainee-id(101301)) + 900141 -> Just(Trainee-id(101401)) + 900151 -> Just(Trainee-id(101501)) + 900161 -> Just(Trainee-id(101601)) + 900171 -> Just(Trainee-id(101701)) + 900181 -> Just(Trainee-id(101801)) + 900191 -> Just(Trainee-id(101901)) + 900201 -> Just(Trainee-id(102001)) + 900211 -> Just(Trainee-id(102101)) + 900221 -> Just(Trainee-id(102201)) + 900231 -> Just(Trainee-id(102301)) + 900241 -> Just(Trainee-id(102401)) + 900251 -> Just(Trainee-id(102501)) + 900261 -> Just(Trainee-id(102601)) + 900271 -> Just(Trainee-id(102701)) + 900281 -> Just(Trainee-id(102801)) + 900301 -> Just(Trainee-id(103001)) + 900321 -> Just(Trainee-id(103201)) + 900351 -> Just(Trainee-id(103501)) + 900371 -> Just(Trainee-id(103701)) + 900381 -> Just(Trainee-id(103801)) + 900391 -> Just(Trainee-id(103901)) + 900401 -> Just(Trainee-id(104001)) + 900411 -> Just(Trainee-id(104101)) + 900451 -> Just(Trainee-id(104501)) + 900461 -> Just(Trainee-id(104601)) + 900481 -> Just(Trainee-id(104801)) + 900501 -> Just(Trainee-id(105001)) + 900521 -> Just(Trainee-id(105201)) + 900561 -> Just(Trainee-id(105601)) + 900581 -> Just(Trainee-id(105801)) + 900591 -> Just(Trainee-id(105901)) + 900601 -> Just(Trainee-id(106001)) + 900611 -> Just(Trainee-id(106101)) + 910011 -> Just(Trainee-id(100102)) + 910031 -> Just(Trainee-id(100302)) + 910041 -> Just(Trainee-id(100402)) + 910061 -> Just(Trainee-id(100602)) + 910111 -> Just(Trainee-id(101102)) + 910131 -> Just(Trainee-id(101302)) + 910141 -> Just(Trainee-id(101402)) + 910171 -> Just(Trainee-id(101702)) + 910181 -> Just(Trainee-id(101802)) + 910231 -> Just(Trainee-id(102302)) + 910241 -> Just(Trainee-id(102402)) + 910301 -> Just(Trainee-id(103002)) + 910401 -> Just(Trainee-id(104002)) + 910451 -> Just(Trainee-id(104502)) + 910561 -> Just(Trainee-id(105602)) _ -> Nothing -// Get the name of a skill. -// Inherited skills have the same names as their original counterparts. -pub fun skill/show(s: skill): string - match s - Warning-Shot -> "Warning Shot!" - Xceleration -> "Xceleration" - Red-Ace -> "Red Ace" - Focused-Mind -> "Focused Mind" - Corazon-Ardiente -> "Corazón ☆ Ardiente" - Empresss-Pride -> "Empress's Pride" - First-Place-Kiss -> "1st Place Kiss☆" - Feel-the-Burn -> "Feel the Burn!" - Introduction-to-Physiology -> "Introduction to Physiology" - V-Is-for-Victory -> "V Is for Victory!" - Class-Rep-Speed-Bakushin -> "Class Rep + Speed = Bakushin" - Clear-Heart -> "Clear Heart" - Super-Duper-Stoked -> "Super-Duper Stoked" - Luck-Be-with-Me -> "Luck Be with Me!" - I-Can-Win-Sometimes-Right -> "I Can Win Sometimes, Right?" - Call-Me-King -> "Call Me King" - Shooting-Star -> "Shooting Star" - The-View-from-the-Lead-Is-Mine -> "The View from the Lead Is Mine!" - Sky-High-Teio-Step -> "Sky-High Teio Step" - Red-Shift-LP1211-M -> "Red Shift/LP1211-M" - Lights-of-Vaudeville -> "Lights of Vaudeville" - Triumphant-Pulse -> "Triumphant Pulse" - Anchors-Aweigh -> "Anchors Aweigh!" - Cut-and-Drive -> "Cut and Drive!" - Resplendent-Red-Ace -> "Resplendent Red Ace" - Shooting-for-Victory -> "Shooting for Victory!" - Where-Theres-a-Will-Theres-a-Way -> "Where There's a Will, There's a Way" - You-and-Me-One-on-One -> "You and Me! One-on-One!" - The-Duty-of-Dignity-Calls -> "The Duty of Dignity Calls" - Victoria-por-plancha -> "Victoria por plancha ☆" - This-Dance-Is-for-Vittoria -> "This Dance Is for Vittoria!" - Shadow-Break -> "Shadow Break" - Behold-Thine-Emperors-Divine-Might -> "Behold Thine Emperor's Divine Might" - Blazing-Pride -> "Blazing Pride" - OMG-The-Final-Sprint -> "OMG! (゚∀゚) The Final Sprint! ☆" - Angling-and-Scheming -> "Angling and Scheming" - White-Lightning-Comin-Through -> "White Lightning Comin' Through!" - Fairy-Tale -> "Fairy Tale" - Win-QED -> "∴win Q.E.D." - Flashy-Landing -> "Flashy☆Landing" - Chasing-After-You -> "Chasing After You" - G00-First-FInfinity -> "G00 1st. F∞;" - Lets-Pump-Some-Iron -> "Let's Pump Some Iron!" - YUMMY-SPEED -> "YUMMY☆SPEED!" - Blue-Rose-Closer -> "Blue Rose Closer" - U-ma2 -> "U=ma2" - Our-Ticket-to-Win -> "Our Ticket to Win!" - Schwarzes-Schwert -> "Schwarzes Schwert" - LookatCurren -> "#LookatCurren" - A-Princess-Must-Seize-Victory -> "A Princess Must Seize Victory!" - KEEP-IT-REAL -> "KEEP IT REAL." - Genius-x-Bakushin-Victory -> "Genius x Bakushin = Victory" - Pure-Heart -> "Pure Heart" - SPARKLY-STARDOM -> "SPARKLY☆STARDOM" - Pop-and-Polish -> "Pop & Polish" - Nemesis -> "Nemesis" - Super-Duper-Climax -> "Super-Duper Climax" - I-See-Victory-in-My-Future -> "I See Victory in My Future!" - I-Never-Goof-Up -> "I Never Goof Up!" - Moving-Past-and-Beyond -> "Moving Past, and Beyond" - Just-a-Little-Farther -> "Just a Little Farther!" - Prideful-King -> "Prideful King" - Dazzl-n-Diver -> "Dazzl'n ♪ Diver" - Certain-Victory -> "Certain Victory" - A-Kiss-for-Courage -> "A Kiss for Courage" - Festive-Miracle -> "Festive Miracle" - Superior-Heal -> "Superior Heal" - Legacy-of-the-Strong -> "Legacy of the Strong" - Condors-Fury -> "Condor's Fury" - Arrows-Whistle-Shadows-Disperse -> "Arrows Whistle, Shadows Disperse" - Eternal-Moments -> "Eternal Moments" - Presents-from-X -> "Presents from X" - Flowery-Maneuver -> "Flowery☆Maneuver" - Every-Rose-Has-Its-Fangs -> "Every Rose Has Its Fangs" - Dancing-in-the-Leaves -> "Dancing in the Leaves" - Give-Mummy-a-Hug -> "Give Mummy a Hug ♡" - Bountiful-Harvest -> "Bountiful Harvest" - Right-Handed-Lv2 -> "Right-Handed ◎" - Right-Handed -> "Right-Handed ○" - Right-Handed-x -> "Right-Handed ×" - Left-Handed-Lv2 -> "Left-Handed ◎" - Left-Handed -> "Left-Handed ○" - Left-Handed-x -> "Left-Handed ×" - Tokyo-Racecourse-Lv2 -> "Tokyo Racecourse ◎" - Tokyo-Racecourse -> "Tokyo Racecourse ○" - Tokyo-Racecourse-x -> "Tokyo Racecourse ×" - Nakayama-Racecourse-Lv2 -> "Nakayama Racecourse ◎" - Nakayama-Racecourse -> "Nakayama Racecourse ○" - Nakayama-Racecourse-x -> "Nakayama Racecourse ×" - Hanshin-Racecourse-Lv2 -> "Hanshin Racecourse ◎" - Hanshin-Racecourse -> "Hanshin Racecourse ○" - Hanshin-Racecourse-x -> "Hanshin Racecourse ×" - Kyoto-Racecourse-Lv2 -> "Kyoto Racecourse ◎" - Kyoto-Racecourse -> "Kyoto Racecourse ○" - Kyoto-Racecourse-x -> "Kyoto Racecourse ×" - Yodo-Invicta -> "Yodo Invicta" - Chukyo-Racecourse-Lv2 -> "Chukyo Racecourse ◎" - Chukyo-Racecourse -> "Chukyo Racecourse ○" - Chukyo-Racecourse-x -> "Chukyo Racecourse ×" - Sapporo-Racecourse-Lv2 -> "Sapporo Racecourse ◎" - Sapporo-Racecourse -> "Sapporo Racecourse ○" - Sapporo-Racecourse-x -> "Sapporo Racecourse ×" - Hakodate-Racecourse-Lv2 -> "Hakodate Racecourse ◎" - Hakodate-Racecourse -> "Hakodate Racecourse ○" - Hakodate-Racecourse-x -> "Hakodate Racecourse ×" - Fukushima-Racecourse-Lv2 -> "Fukushima Racecourse ◎" - Fukushima-Racecourse -> "Fukushima Racecourse ○" - Fukushima-Racecourse-x -> "Fukushima Racecourse ×" - Niigata-Racecourse-Lv2 -> "Niigata Racecourse ◎" - Niigata-Racecourse -> "Niigata Racecourse ○" - Niigata-Racecourse-x -> "Niigata Racecourse ×" - Kokura-Racecourse-Lv2 -> "Kokura Racecourse ◎" - Kokura-Racecourse -> "Kokura Racecourse ○" - Kokura-Racecourse-x -> "Kokura Racecourse ×" - Standard-Distance-Lv2 -> "Standard Distance ◎" - Standard-Distance -> "Standard Distance ○" - Standard-Distance-x -> "Standard Distance ×" - Non-Standard-Distance-Lv2 -> "Non-Standard Distance ◎" - Non-Standard-Distance -> "Non-Standard Distance ○" - Non-Standard-Distance-x -> "Non-Standard Distance ×" - Firm-Conditions-Lv2 -> "Firm Conditions ◎" - Firm-Conditions -> "Firm Conditions ○" - Firm-Conditions-x -> "Firm Conditions ×" - Wet-Conditions-Lv2 -> "Wet Conditions ◎" - Wet-Conditions -> "Wet Conditions ○" - Wet-Conditions-x -> "Wet Conditions ×" - Spring-Runner-Lv2 -> "Spring Runner ◎" - Spring-Runner -> "Spring Runner ○" - Spring-Runner-x -> "Spring Runner ×" - Summer-Runner-Lv2 -> "Summer Runner ◎" - Summer-Runner -> "Summer Runner ○" - Summer-Runner-x -> "Summer Runner ×" - Fall-Runner-Lv2 -> "Fall Runner ◎" - Fall-Runner -> "Fall Runner ○" - Fall-Runner-x -> "Fall Runner ×" - Fall-Frenzy -> "Fall Frenzy" - Winter-Runner-Lv2 -> "Winter Runner ◎" - Winter-Runner -> "Winter Runner ○" - Winter-Runner-x -> "Winter Runner ×" - Sunny-Days-Lv2 -> "Sunny Days ◎" - Sunny-Days -> "Sunny Days ○" - Cloudy-Days-Lv2 -> "Cloudy Days ◎" - Cloudy-Days -> "Cloudy Days ○" - Rainy-Days-Lv2 -> "Rainy Days ◎" - Rainy-Days -> "Rainy Days ○" - Rainy-Days-x -> "Rainy Days ×" - Snowy-Days-Lv2 -> "Snowy Days ◎" - Snowy-Days -> "Snowy Days ○" - Inner-Post-Proficiency-Lv2 -> "Inner Post Proficiency ◎" - Inner-Post-Proficiency -> "Inner Post Proficiency ○" - Inner-Post-Averseness -> "Inner Post Averseness" - Outer-Post-Proficiency-Lv2 -> "Outer Post Proficiency ◎" - Outer-Post-Proficiency -> "Outer Post Proficiency ○" - Outer-Post-Averseness -> "Outer Post Averseness" - Maverick-Lv2 -> "Maverick ◎" - Maverick -> "Maverick ○" - Competitive-Spirit-Lv2 -> "Competitive Spirit ◎" - Competitive-Spirit -> "Competitive Spirit ○" - Wallflower -> "Wallflower" - Target-in-Sight-Lv2 -> "Target in Sight ◎" - Target-in-Sight -> "Target in Sight ○" - Long-Shot-Lv2 -> "Long Shot ◎" - Long-Shot -> "Long Shot ○" - G1-Averseness -> "G1 Averseness" - Paddock-Fright -> "Paddock Fright" - Professor-of-Curvature -> "Professor of Curvature" - Corner-Adept -> "Corner Adept ○" - Corner-Adept-x -> "Corner Adept ×" - Corner-Connoisseur -> "Corner Connoisseur" - Corner-Acceleration -> "Corner Acceleration ○" - Corner-Acceleration-x -> "Corner Acceleration ×" - Swinging-Maestro -> "Swinging Maestro" - Corner-Recovery -> "Corner Recovery ○" - Corner-Recovery-x -> "Corner Recovery ×" - Beeline-Burst -> "Beeline Burst" - Straightaway-Adept -> "Straightaway Adept" - Rushing-Gale -> "Rushing Gale!" - Straightaway-Acceleration -> "Straightaway Acceleration" - Breath-of-Fresh-Air -> "Breath of Fresh Air" - Straightaway-Recovery -> "Straightaway Recovery" - Ramp-Revulsion -> "Ramp Revulsion" - Packphobia -> "Packphobia" - Defeatist -> "Defeatist" - Reckless -> "Reckless" - Concentration -> "Concentration" - Focus -> "Focus" - Gatekept -> "Gatekept" - Iron-Will -> "Iron Will" - Lay-Low -> "Lay Low" - Center-Stage -> "Center Stage" - Prudent-Positioning -> "Prudent Positioning" - Its-On -> "It's On!" - Ramp-Up -> "Ramp Up" - Indomitable -> "Indomitable" - Pace-Strategy -> "Pace Strategy" - Unruffled -> "Unruffled" - Calm-in-a-Crowd -> "Calm in a Crowd" - No-Stopping-Me -> "No Stopping Me!" - Nimble-Navigator -> "Nimble Navigator" - Lane-Legerdemain -> "Lane Legerdemain" - Go-with-the-Flow -> "Go with the Flow" - In-Body-and-Mind -> "In Body and Mind" - Homestretch-Haste -> "Homestretch Haste" - Running-Idle -> "Running Idle" - Taking-the-Lead -> "Taking the Lead" - Early-Lead -> "Early Lead" - Escape-Artist -> "Escape Artist" - Fast-Paced -> "Fast-Paced" - Unrestrained -> "Unrestrained" - Final-Push -> "Final Push" - Calm-and-Collected -> "Calm and Collected" - Stamina-to-Spare -> "Stamina to Spare" - Race-Planner -> "Race Planner" - Preferred-Position -> "Preferred Position" - Speed-Star -> "Speed Star" - Prepared-to-Pass -> "Prepared to Pass" - Fast-and-Furious -> "Fast & Furious" - Position-Pilfer -> "Position Pilfer" - On-Your-Left -> "On Your Left!" - Slick-Surge -> "Slick Surge" - Rising-Dragon -> "Rising Dragon" - Outer-Swell -> "Outer Swell" - Sleeping-Lion -> "Sleeping Lion" - Standing-By -> "Standing By" - Sturm-und-Drang -> "Sturm und Drang" - Masterful-Gambit -> "Masterful Gambit" - Encroaching-Shadow -> "Encroaching Shadow" - Straightaway-Spurt -> "Straightaway Spurt" - Turbo-Sprint -> "Turbo Sprint" - Sprinting-Gear -> "Sprinting Gear" - Wait-and-See -> "Wait-and-See" - Blinding-Flash -> "Blinding Flash" - Gap-Closer -> "Gap Closer" - Mile-Maven -> "Mile Maven" - Productive-Plan -> "Productive Plan" - Keen-Eye -> "Keen Eye" - Watchful-Eye -> "Watchful Eye" - Furious-Feat -> "Furious Feat" - Updrafters -> "Updrafters" - Trackblazer -> "Trackblazer" - Rosy-Outlook -> "Rosy Outlook" - Killer-Tunes -> "Killer Tunes" - Up-Tempo -> "Up-Tempo" - Unyielding -> "Unyielding" - Steadfast -> "Steadfast" - Cooldown -> "Cooldown" - Deep-Breaths -> "Deep Breaths" - Innate-Experience -> "Innate Experience" - Inside-Scoop -> "Inside Scoop" - Adrenaline-Rush -> "Adrenaline Rush" - Extra-Tank -> "Extra Tank" - Trick-Front -> "Trick (Front)" - Tantalizing-Trick -> "Tantalizing Trick" - Trick-Rear -> "Trick (Rear)" - Frenzied-Front-Runners -> "Frenzied Front Runners" - Frenzied-Pace-Chasers -> "Frenzied Pace Chasers" - Frenzied-Late-Surgers -> "Frenzied Late Surgers" - Frenzied-End-Closers -> "Frenzied End Closers" - Subdued-Front-Runners -> "Subdued Front Runners" - Flustered-Front-Runners -> "Flustered Front Runners" - Hesitant-Front-Runners -> "Hesitant Front Runners" - Subdued-Pace-Chasers -> "Subdued Pace Chasers" - Flustered-Pace-Chasers -> "Flustered Pace Chasers" - Hesitant-Pace-Chasers -> "Hesitant Pace Chasers" - Subdued-Late-Surgers -> "Subdued Late Surgers" - Flustered-Late-Surgers -> "Flustered Late Surgers" - Hesitant-Late-Surgers -> "Hesitant Late Surgers" - Subdued-End-Closers -> "Subdued End Closers" - Flustered-End-Closers -> "Flustered End Closers" - Hesitant-End-Closers -> "Hesitant End Closers" - Oi-Racecourse-Lv2 -> "Oi Racecourse ◎" - Oi-Racecourse -> "Oi Racecourse ○" - Oi-Racecourse-x -> "Oi Racecourse ×" - Sprint-Straightaways-Lv2 -> "Sprint Straightaways ◎" - Sprint-Straightaways -> "Sprint Straightaways ○" - Sprint-Corners-Lv2 -> "Sprint Corners ◎" - Sprint-Corners -> "Sprint Corners ○" - Staggering-Lead -> "Staggering Lead" - Huge-Lead -> "Huge Lead" - Plan-X -> "Plan X" - Countermeasure -> "Countermeasure" - Perfect-Prep -> "Perfect Prep!" - Meticulous-Measures -> "Meticulous Measures" - Adored-by-All -> "Adored by All" - Intimidate -> "Intimidate" - You-ve-Got-No-Shot -> "You've Got No Shot" - Stop-Right-There -> "Stop Right There!" - Mile-Straightaways-Lv2 -> "Mile Straightaways ◎" - Mile-Straightaways -> "Mile Straightaways ○" - Mile-Corners-Lv2 -> "Mile Corners ◎" - Mile-Corners -> "Mile Corners ○" - Changing-Gears -> "Changing Gears" - Shifting-Gears -> "Shifting Gears" - Step-on-the-Gas -> "Step on the Gas!" - Acceleration -> "Acceleration" - Big-Sisterly -> "Big-Sisterly" - Unyielding-Spirit -> "Unyielding Spirit" - Greed-for-Speed -> "Greed for Speed" - Speed-Eater -> "Speed Eater" - Battle-Formation -> "Battle Formation" - Opening-Gambit -> "Opening Gambit" - Medium-Straightaways-Lv2 -> "Medium Straightaways ◎" - Medium-Straightaways -> "Medium Straightaways ○" - Medium-Corners-Lv2 -> "Medium Corners ◎" - Medium-Corners -> "Medium Corners ○" - Clairvoyance -> "Clairvoyance" - Hawkeye -> "Hawkeye" - Lightning-Step -> "Lightning Step" - Thunderbolt-Step -> "Thunderbolt Step" - Miraculous-Step -> "Miraculous Step" - Soft-Step -> "Soft Step" - Dominator -> "Dominator" - Tether -> "Tether" - Mystifying-Murmur -> "Mystifying Murmur" - Murmur -> "Murmur" - Long-Straightaways-Lv2 -> "Long Straightaways ◎" - Long-Straightaways -> "Long Straightaways ○" - Long-Corners-Lv2 -> "Long Corners ◎" - Long-Corners -> "Long Corners ○" - Vanguard-Spirit -> "Vanguard Spirit" - Keeping-the-Lead -> "Keeping the Lead" - VIP-Pass -> "VIP Pass" - Passing-Pro -> "Passing Pro" - Overwhelming-Pressure -> "Overwhelming Pressure" - Pressure -> "Pressure" - Stamina-Siphon -> "Stamina Siphon" - Stamina-Eater -> "Stamina Eater" - Illusionist -> "Illusionist" - Smoke-Screen -> "Smoke Screen" - Front-Runner-Straightaways-Lv2 -> "Front Runner Straightaways ◎" - Front-Runner-Straightaways -> "Front Runner Straightaways ○" - Front-Runner-Corners-Lv2 -> "Front Runner Corners ◎" - Front-Runner-Corners -> "Front Runner Corners ○" - Sixth-Sense -> "Sixth Sense" - Dodging-Danger -> "Dodging Danger" - Leaders-Pride -> "Leader's Pride" - Restless -> "Restless" - Moxie -> "Moxie" - Reignition -> "Reignition" - Second-Wind -> "Second Wind" - Restart -> "Restart" - Pace-Chaser-Straightaways-Lv2 -> "Pace Chaser Straightaways ◎" - Pace-Chaser-Straightaways -> "Pace Chaser Straightaways ○" - Pace-Chaser-Corners-Lv2 -> "Pace Chaser Corners ◎" - Pace-Chaser-Corners -> "Pace Chaser Corners ○" - Technician -> "Technician" - Shrewd-Step -> "Shrewd Step" - Determined-Descent -> "Determined Descent" - Straight-Descent -> "Straight Descent" - Gourmand -> "Gourmand" - Hydrate -> "Hydrate" - Shatterproof -> "Shatterproof" - Tactical-Tweak -> "Tactical Tweak" - Dazzling-Disorientation -> "Dazzling Disorientation" - Disorient -> "Disorient" - Late-Surger-Straightaways-Lv2 -> "Late Surger Straightaways ◎" - Late-Surger-Straightaways -> "Late Surger Straightaways ○" - Late-Surger-Corners-Lv2 -> "Late Surger Corners ◎" - Late-Surger-Corners -> "Late Surger Corners ○" - Hard-Worker -> "Hard Worker" - Fighter -> "Fighter" - Fifteen-Million-CC -> "15,000,000 CC" - One-Million-CC -> "1,500,000 CC" - Relax -> "Relax" - A-Small-Breather -> "A Small Breather" - The-Bigger-Picture -> "The Bigger Picture" - Studious -> "Studious" - All-Seeing-Eyes -> "All-Seeing Eyes" - Sharp-Gaze -> "Sharp Gaze" - End-Closer-Straightaways-Lv2 -> "End Closer Straightaways ◎" - End-Closer-Straightaways -> "End Closer Straightaways ○" - End-Closer-Corners-Lv2 -> "End Closer Corners ◎" - End-Closer-Corners -> "End Closer Corners ○" - The-Coast-Is-Clear -> "The Coast Is Clear!" - I-Can-See-Right-Through-You -> "I Can See Right Through You" - Go-Home-Specialist -> "Go-Home Specialist" - After-School-Stroll -> "After-School Stroll" - Serenity -> "Serenity" - Levelheaded -> "Levelheaded" - Crusader -> "Crusader" - Strategist -> "Strategist" - Petrifying-Gaze -> "Petrifying Gaze" - Intense-Gaze -> "Intense Gaze" - Front-Runner-Savvy-Lv2 -> "Front Runner Savvy ◎" - Front-Runner-Savvy -> "Front Runner Savvy ○" - Pace-Chaser-Savvy-Lv2 -> "Pace Chaser Savvy ◎" - Pace-Chaser-Savvy -> "Pace Chaser Savvy ○" - Late-Surger-Savvy-Lv2 -> "Late Surger Savvy ◎" - Late-Surger-Savvy -> "Late Surger Savvy ○" - End-Closer-Savvy-Lv2 -> "End Closer Savvy ◎" - End-Closer-Savvy -> "End Closer Savvy ○" - Super-Lucky-Seven -> "Super Lucky Seven" - Lucky-Seven -> "Lucky Seven" - Triple-Sevens -> "Triple 7s" - Highlander -> "Highlander" - Uma-Stan -> "Uma Stan" - Superstan -> "Superstan" - Groundwork -> "Groundwork" - Tail-Held-High -> "Tail Held High" - Tail-Nine -> "Tail Nine" - Shake-It-Out -> "Shake It Out" - Sympathy -> "Sympathy" - Lone-Wolf -> "Lone Wolf" - Slipstream -> "Slipstream" - Playtimes-Over -> "Playtime's Over!" - Trending-in-the-Charts -> "Trending in the Charts!" - Top-Pick -> "Top Pick" - Lead-the-Charge -> "Lead the Charge!" - Forward-March -> "Forward, March!" - Lie-in-Wait -> "Lie in Wait" - Be-Still -> "Be Still" - Come-What-May -> "Come What May" - All-I-ve-Got -> "All I've Got" - Nail-Art -> "♡ 3D Nail Art" - Head-On -> "Head-On" - Familiar-Ground -> "Familiar Ground" - Early-Start -> "Early Start" - Risky-Business -> "Risky Business" - Runaway -> "Runaway" - Burning-Spirit-SPD -> "Burning Spirit SPD" - Ignited-Spirit-SPD -> "Ignited Spirit SPD" - Burning-Spirit-STA -> "Burning Spirit STA" - Ignited-Spirit-STA -> "Ignited Spirit STA" - Burning-Spirit-PWR -> "Burning Spirit PWR" - Ignited-Spirit-PWR -> "Ignited Spirit PWR" - Burning-Spirit-GUTS -> "Burning Spirit GUTS" - Ignited-Spirit-GUTS -> "Ignited Spirit GUTS" - Burning-Spirit-WIT -> "Burning Spirit WIT" - Ignited-Spirit-WIT -> "Ignited Spirit WIT" - Unquenched-Thirst -> "Unquenched Thirst" - Unchanging -> "Unchanging" - Towards-the-Scenery-I-Seek -> "Towards the Scenery I Seek" - Creeping-Anxiety -> "Creeping Anxiety" - Blatant-Fear -> "Blatant Fear" - Dream-Run -> "Dream Run" - Show-Me-What-Lies-Beyond -> "Show Me What Lies Beyond!" - Hoiya-Have-a-Good-Run -> "Hoiya! Have a Good Run!" - As-a-Friend-and-Rival -> "As a Friend and Rival" - Cheers-of-a-Fellow-Dreamer -> "Cheers of a Fellow Dreamer" - Shooting-Star-Inherit -> "Shooting Star" - The-View-from-the-Lead-Is-Mine-Inherit -> "The View from the Lead Is Mine!" - Sky-High-Teio-Step-Inherit -> "Sky-High Teio Step" - Red-Shift-LP1211-M-Inherit -> "Red Shift/LP1211-M" - Lights-of-Vaudeville-Inherit -> "Lights of Vaudeville" - Triumphant-Pulse-Inherit -> "Triumphant Pulse" - Anchors-Aweigh-Inherit -> "Anchors Aweigh!" - Cut-and-Drive-Inherit -> "Cut and Drive!" - Resplendent-Red-Ace-Inherit -> "Resplendent Red Ace" - Shooting-for-Victory-Inherit -> "Shooting for Victory!" - Where-Theres-a-Will-Theres-a-Way-Inherit -> "Where There's a Will, There's a Way" - You-and-Me-One-on-One-Inherit -> "You and Me! One-on-One!" - The-Duty-of-Dignity-Calls-Inherit -> "The Duty of Dignity Calls" - Victoria-por-plancha-Inherit -> "Victoria por plancha ☆" - This-Dance-Is-for-Vittoria-Inherit -> "This Dance Is for Vittoria!" - Shadow-Break-Inherit -> "Shadow Break" - Behold-Thine-Emperors-Divine-Might-Inherit -> "Behold Thine Emperor's Divine Might" - Blazing-Pride-Inherit -> "Blazing Pride" - OMG-The-Final-Sprint-Inherit -> "OMG! (゚∀゚) The Final Sprint! ☆" - Angling-and-Scheming-Inherit -> "Angling and Scheming" - White-Lightning-Comin-Through-Inherit -> "White Lightning Comin' Through!" - Fairy-Tale-Inherit -> "Fairy Tale" - Win-QED-Inherit -> "∴win Q.E.D." - Flashy-Landing-Inherit -> "Flashy☆Landing" - Chasing-After-You-Inherit -> "Chasing After You" - G00-First-FInfinity-Inherit -> "G00 1st. F∞;" - Lets-Pump-Some-Iron-Inherit -> "Let's Pump Some Iron!" - YUMMY-SPEED-Inherit -> "YUMMY☆SPEED!" - Blue-Rose-Closer-Inherit -> "Blue Rose Closer" - U-ma2-Inherit -> "U=ma2" - Our-Ticket-to-Win-Inherit -> "Our Ticket to Win!" - Schwarzes-Schwert-Inherit -> "Schwarzes Schwert" - LookatCurren-Inherit -> "#LookatCurren" - A-Princess-Must-Seize-Victory-Inherit -> "A Princess Must Seize Victory!" - KEEP-IT-REAL-Inherit -> "KEEP IT REAL." - Genius-x-Bakushin-Victory-Inherit -> "Genius x Bakushin = Victory" - Pure-Heart-Inherit -> "Pure Heart" - SPARKLY-STARDOM-Inherit -> "SPARKLY☆STARDOM" - Pop-and-Polish-Inherit -> "Pop & Polish" - Nemesis-Inherit -> "Nemesis" - Super-Duper-Climax-Inherit -> "Super-Duper Climax" - I-See-Victory-in-My-Future-Inherit -> "I See Victory in My Future!" - I-Never-Goof-Up-Inherit -> "I Never Goof Up!" - Moving-Past-and-Beyond-Inherit -> "Moving Past, and Beyond" - Just-a-Little-Farther-Inherit -> "Just a Little Farther!" - Prideful-King-Inherit -> "Prideful King" - Dazzl-n-Diver-Inherit -> "Dazzl'n ♪ Diver" - Certain-Victory-Inherit -> "Certain Victory" - A-Kiss-for-Courage-Inherit -> "A Kiss for Courage" - Festive-Miracle-Inherit -> "Festive Miracle" - Superior-Heal-Inherit -> "Superior Heal" - Legacy-of-the-Strong-Inherit -> "Legacy of the Strong" - Condors-Fury-Inherit -> "Condor's Fury" - Arrows-Whistle-Shadows-Disperse-Inherit -> "Arrows Whistle, Shadows Disperse" - Eternal-Moments-Inherit -> "Eternal Moments" - Presents-from-X-Inherit -> "Presents from X" - Flowery-Maneuver-Inherit -> "Flowery☆Maneuver" - Every-Rose-Has-Its-Fangs-Inherit -> "Every Rose Has Its Fangs" - Dancing-in-the-Leaves-Inherit -> "Dancing in the Leaves" - Give-Mummy-a-Hug-Inherit -> "Give Mummy a Hug ♡" - Bountiful-Harvest-Inherit -> "Bountiful Harvest" +// Get the SP cost of a skill. +// If there is no skill with the given ID, the result is 0. +pub fun sp-cost(s: skill-id): int + match s.game-id + 10071 -> 0 + 10081 -> 0 + 10091 -> 0 + 10111 -> 0 + 10141 -> 0 + 10181 -> 0 + 10241 -> 0 + 10271 -> 0 + 10321 -> 0 + 10351 -> 0 + 10411 -> 0 + 10451 -> 0 + 10521 -> 0 + 10561 -> 0 + 10601 -> 0 + 10611 -> 0 + 100011 -> 0 + 100021 -> 0 + 100031 -> 0 + 100041 -> 0 + 100051 -> 0 + 100061 -> 0 + 100071 -> 0 + 100081 -> 0 + 100091 -> 0 + 100101 -> 0 + 100111 -> 0 + 100121 -> 0 + 100131 -> 0 + 100141 -> 0 + 100151 -> 0 + 100161 -> 0 + 100171 -> 0 + 100181 -> 0 + 100191 -> 0 + 100201 -> 0 + 100211 -> 0 + 100221 -> 0 + 100231 -> 0 + 100241 -> 0 + 100251 -> 0 + 100261 -> 0 + 100271 -> 0 + 100281 -> 0 + 100301 -> 0 + 100321 -> 0 + 100351 -> 0 + 100371 -> 0 + 100381 -> 0 + 100391 -> 0 + 100401 -> 0 + 100411 -> 0 + 100451 -> 0 + 100461 -> 0 + 100481 -> 0 + 100501 -> 0 + 100521 -> 0 + 100561 -> 0 + 100581 -> 0 + 100591 -> 0 + 100601 -> 0 + 100611 -> 0 + 110011 -> 0 + 110031 -> 0 + 110041 -> 0 + 110061 -> 0 + 110111 -> 0 + 110131 -> 0 + 110141 -> 0 + 110171 -> 0 + 110181 -> 0 + 110231 -> 0 + 110241 -> 0 + 110301 -> 0 + 110401 -> 0 + 110451 -> 0 + 110561 -> 0 + 200011 -> 110 + 200012 -> 90 + 200013 -> 50 + 200021 -> 110 + 200022 -> 90 + 200023 -> 50 + 200031 -> 110 + 200032 -> 90 + 200033 -> 50 + 200041 -> 110 + 200042 -> 90 + 200043 -> 50 + 200051 -> 110 + 200052 -> 90 + 200053 -> 50 + 200061 -> 110 + 200062 -> 90 + 200063 -> 50 + 200064 -> 130 + 200071 -> 110 + 200072 -> 90 + 200073 -> 50 + 200081 -> 90 + 200082 -> 70 + 200083 -> 40 + 200091 -> 90 + 200092 -> 70 + 200093 -> 40 + 200101 -> 90 + 200102 -> 70 + 200103 -> 40 + 200111 -> 90 + 200112 -> 70 + 200113 -> 40 + 200121 -> 90 + 200122 -> 70 + 200123 -> 40 + 200131 -> 110 + 200132 -> 90 + 200133 -> 50 + 200141 -> 110 + 200142 -> 90 + 200143 -> 50 + 200151 -> 110 + 200152 -> 90 + 200153 -> 50 + 200161 -> 110 + 200162 -> 90 + 200163 -> 50 + 200171 -> 110 + 200172 -> 90 + 200173 -> 50 + 200181 -> 110 + 200182 -> 90 + 200183 -> 50 + 200191 -> 110 + 200192 -> 90 + 200193 -> 50 + 200194 -> 130 + 200201 -> 110 + 200202 -> 90 + 200203 -> 50 + 200211 -> 110 + 200212 -> 90 + 200221 -> 110 + 200222 -> 90 + 200231 -> 110 + 200232 -> 90 + 200233 -> 50 + 200241 -> 110 + 200242 -> 90 + 200251 -> 110 + 200252 -> 90 + 200253 -> 50 + 200261 -> 110 + 200262 -> 90 + 200263 -> 50 + 200271 -> 110 + 200272 -> 90 + 200281 -> 110 + 200282 -> 90 + 200283 -> 50 + 200291 -> 110 + 200292 -> 90 + 200301 -> 110 + 200302 -> 90 + 200311 -> 50 + 200321 -> 50 + 200331 -> 180 + 200332 -> 180 + 200333 -> 100 + 200341 -> 180 + 200342 -> 180 + 200343 -> 100 + 200351 -> 170 + 200352 -> 170 + 200353 -> 100 + 200361 -> 170 + 200362 -> 170 + 200371 -> 170 + 200372 -> 170 + 200381 -> 170 + 200382 -> 170 + 200391 -> 100 + 200401 -> 100 + 200411 -> 100 + 200421 -> 100 + 200431 -> 140 + 200432 -> 140 + 200433 -> 70 + 200441 -> 160 + 200442 -> 160 + 200451 -> 120 + 200452 -> 120 + 200461 -> 170 + 200462 -> 170 + 200471 -> 170 + 200472 -> 170 + 200481 -> 170 + 200482 -> 170 + 200491 -> 150 + 200492 -> 150 + 200501 -> 120 + 200502 -> 120 + 200511 -> 170 + 200512 -> 170 + 200521 -> 100 + 200531 -> 120 + 200532 -> 120 + 200541 -> 180 + 200542 -> 180 + 200551 -> 180 + 200552 -> 180 + 200561 -> 180 + 200562 -> 180 + 200571 -> 180 + 200572 -> 180 + 200581 -> 180 + 200582 -> 180 + 200591 -> 180 + 200592 -> 180 + 200601 -> 180 + 200602 -> 180 + 200611 -> 180 + 200612 -> 180 + 200621 -> 180 + 200622 -> 180 + 200631 -> 180 + 200632 -> 180 + 200641 -> 180 + 200642 -> 180 + 200651 -> 160 + 200652 -> 160 + 200662 -> 160 + 200671 -> 160 + 200672 -> 160 + 200681 -> 160 + 200682 -> 160 + 200691 -> 160 + 200692 -> 160 + 200701 -> 160 + 200702 -> 160 + 200711 -> 160 + 200712 -> 160 + 200721 -> 160 + 200722 -> 160 + 200731 -> 160 + 200732 -> 160 + 200741 -> 160 + 200742 -> 160 + 200751 -> 160 + 200752 -> 160 + 200761 -> 160 + 200762 -> 160 + 200771 -> 140 + 200772 -> 140 + 200781 -> 140 + 200791 -> 130 + 200801 -> 130 + 200811 -> 130 + 200821 -> 130 + 200831 -> 130 + 200841 -> 130 + 200851 -> 130 + 200861 -> 130 + 200871 -> 130 + 200881 -> 130 + 200891 -> 130 + 200901 -> 130 + 200911 -> 130 + 200921 -> 130 + 200931 -> 130 + 200941 -> 130 + 200951 -> 110 + 200952 -> 90 + 200953 -> 50 + 200961 -> 110 + 200962 -> 100 + 200971 -> 110 + 200972 -> 100 + 200981 -> 170 + 200982 -> 170 + 200991 -> 160 + 200992 -> 160 + 201001 -> 140 + 201002 -> 140 + 201011 -> 170 + 201012 -> 170 + 201021 -> 170 + 201022 -> 170 + 201031 -> 110 + 201032 -> 100 + 201041 -> 110 + 201042 -> 100 + 201051 -> 160 + 201052 -> 160 + 201061 -> 160 + 201062 -> 160 + 201071 -> 120 + 201072 -> 120 + 201081 -> 160 + 201082 -> 160 + 201091 -> 160 + 201092 -> 160 + 201101 -> 110 + 201102 -> 100 + 201111 -> 110 + 201112 -> 100 + 201121 -> 110 + 201122 -> 110 + 201131 -> 140 + 201132 -> 140 + 201141 -> 160 + 201142 -> 160 + 201151 -> 160 + 201152 -> 160 + 201161 -> 160 + 201162 -> 160 + 201171 -> 110 + 201172 -> 100 + 201181 -> 110 + 201182 -> 100 + 201191 -> 160 + 201192 -> 160 + 201201 -> 160 + 201202 -> 160 + 201211 -> 160 + 201212 -> 160 + 201221 -> 160 + 201222 -> 160 + 201231 -> 110 + 201232 -> 110 + 201241 -> 140 + 201242 -> 130 + 201251 -> 140 + 201252 -> 130 + 201261 -> 110 + 201262 -> 110 + 201272 -> 180 + 201281 -> 180 + 201282 -> 180 + 201291 -> 180 + 201292 -> 180 + 201302 -> 130 + 201311 -> 140 + 201312 -> 130 + 201321 -> 140 + 201322 -> 130 + 201331 -> 120 + 201332 -> 120 + 201341 -> 120 + 201342 -> 120 + 201351 -> 180 + 201352 -> 180 + 201361 -> 120 + 201362 -> 120 + 201371 -> 110 + 201372 -> 110 + 201381 -> 140 + 201382 -> 130 + 201391 -> 140 + 201392 -> 130 + 201401 -> 120 + 201402 -> 120 + 201411 -> 120 + 201412 -> 120 + 201421 -> 180 + 201422 -> 180 + 201431 -> 120 + 201432 -> 120 + 201441 -> 180 + 201442 -> 180 + 201451 -> 140 + 201452 -> 130 + 201461 -> 140 + 201462 -> 130 + 201471 -> 110 + 201472 -> 110 + 201481 -> 170 + 201482 -> 170 + 201491 -> 180 + 201492 -> 180 + 201501 -> 110 + 201502 -> 110 + 201511 -> 180 + 201512 -> 180 + 201521 -> 130 + 201522 -> 110 + 201531 -> 130 + 201532 -> 110 + 201541 -> 130 + 201542 -> 110 + 201551 -> 130 + 201552 -> 110 + 201561 -> 110 + 201562 -> 110 + 201571 -> 160 + 201581 -> 160 + 201591 -> 160 + 201592 -> 160 + 201601 -> 100 + 201611 -> 100 + 201612 -> 180 + 201621 -> 100 + 201631 -> 70 + 201641 -> 70 + 201651 -> 160 + 201661 -> 160 + 201671 -> 180 + 201672 -> 180 + 201681 -> 140 + 201682 -> 140 + 201691 -> 180 + 201692 -> 180 + 201701 -> 160 + 201702 -> 160 + 201801 -> 50 + 201902 -> 180 + 202002 -> 180 + 202022 -> 180 + 202032 -> 120 + 202051 -> 200 + 210011 -> 200 + 210012 -> 200 + 210021 -> 200 + 210022 -> 200 + 210031 -> 200 + 210032 -> 200 + 210041 -> 200 + 210042 -> 200 + 210051 -> 200 + 210052 -> 200 + 300011 -> 0 + 300021 -> 0 + 300031 -> 0 + 300041 -> 0 + 300051 -> 0 + 300061 -> 0 + 300071 -> 0 + 300081 -> 0 + 300091 -> 0 + 300101 -> 0 + 900011 -> 200 + 900021 -> 200 + 900031 -> 200 + 900041 -> 200 + 900051 -> 200 + 900061 -> 200 + 900071 -> 200 + 900081 -> 200 + 900091 -> 200 + 900101 -> 200 + 900111 -> 200 + 900121 -> 200 + 900131 -> 200 + 900141 -> 200 + 900151 -> 200 + 900161 -> 200 + 900171 -> 200 + 900181 -> 200 + 900191 -> 200 + 900201 -> 200 + 900211 -> 200 + 900221 -> 200 + 900231 -> 200 + 900241 -> 200 + 900251 -> 200 + 900261 -> 200 + 900271 -> 200 + 900281 -> 200 + 900301 -> 200 + 900321 -> 200 + 900351 -> 200 + 900371 -> 200 + 900381 -> 200 + 900391 -> 200 + 900401 -> 200 + 900411 -> 200 + 900451 -> 200 + 900461 -> 200 + 900481 -> 200 + 900501 -> 200 + 900521 -> 200 + 900561 -> 200 + 900581 -> 200 + 900591 -> 200 + 900601 -> 200 + 900611 -> 200 + 910011 -> 200 + 910031 -> 200 + 910041 -> 200 + 910061 -> 200 + 910111 -> 200 + 910131 -> 200 + 910141 -> 200 + 910171 -> 200 + 910181 -> 200 + 910231 -> 200 + 910241 -> 200 + 910301 -> 200 + 910401 -> 200 + 910451 -> 200 + 910561 -> 200 + _ -> 0 -// Compare two skills by ID order. -pub fip fun skill/order2(a: skill, b: skill): order2 - match cmp(a.skill-id, b.skill-id) - Lt -> Lt2(a, b) - Eq -> Eq2(a) - Gt -> Gt2(a, b) +// Get the icon ID of a skill. +// If there is no skill with the given ID, the result is an invalid ID. +pub fun icon-id(s: skill-id): skill-icon-id + match s.game-id + 10071 -> Skill-icon-id(20013) + 10081 -> Skill-icon-id(20013) + 10091 -> Skill-icon-id(20013) + 10111 -> Skill-icon-id(20013) + 10141 -> Skill-icon-id(20013) + 10181 -> Skill-icon-id(20013) + 10241 -> Skill-icon-id(20013) + 10271 -> Skill-icon-id(20043) + 10321 -> Skill-icon-id(20023) + 10351 -> Skill-icon-id(20013) + 10411 -> Skill-icon-id(20013) + 10451 -> Skill-icon-id(20023) + 10521 -> Skill-icon-id(20023) + 10561 -> Skill-icon-id(20013) + 10601 -> Skill-icon-id(20013) + 10611 -> Skill-icon-id(20013) + 100011 -> Skill-icon-id(20013) + 100021 -> Skill-icon-id(20013) + 100031 -> Skill-icon-id(20013) + 100041 -> Skill-icon-id(20043) + 100051 -> Skill-icon-id(20013) + 100061 -> Skill-icon-id(20013) + 100071 -> Skill-icon-id(20013) + 100081 -> Skill-icon-id(20013) + 100091 -> Skill-icon-id(20013) + 100101 -> Skill-icon-id(20043) + 100111 -> Skill-icon-id(20013) + 100121 -> Skill-icon-id(20013) + 100131 -> Skill-icon-id(20013) + 100141 -> Skill-icon-id(20013) + 100151 -> Skill-icon-id(20013) + 100161 -> Skill-icon-id(20013) + 100171 -> Skill-icon-id(20013) + 100181 -> Skill-icon-id(20013) + 100191 -> Skill-icon-id(20013) + 100201 -> Skill-icon-id(20043) + 100211 -> Skill-icon-id(20013) + 100221 -> Skill-icon-id(20013) + 100231 -> Skill-icon-id(20013) + 100241 -> Skill-icon-id(20013) + 100251 -> Skill-icon-id(20013) + 100261 -> Skill-icon-id(20013) + 100271 -> Skill-icon-id(20043) + 100281 -> Skill-icon-id(20013) + 100301 -> Skill-icon-id(20013) + 100321 -> Skill-icon-id(20023) + 100351 -> Skill-icon-id(20013) + 100371 -> Skill-icon-id(20013) + 100381 -> Skill-icon-id(20013) + 100391 -> Skill-icon-id(20013) + 100401 -> Skill-icon-id(20043) + 100411 -> Skill-icon-id(20013) + 100451 -> Skill-icon-id(20023) + 100461 -> Skill-icon-id(20013) + 100481 -> Skill-icon-id(20013) + 100501 -> Skill-icon-id(20013) + 100521 -> Skill-icon-id(20023) + 100561 -> Skill-icon-id(20013) + 100581 -> Skill-icon-id(20013) + 100591 -> Skill-icon-id(20043) + 100601 -> Skill-icon-id(20013) + 100611 -> Skill-icon-id(20013) + 110011 -> Skill-icon-id(20023) + 110031 -> Skill-icon-id(20013) + 110041 -> Skill-icon-id(20013) + 110061 -> Skill-icon-id(20013) + 110111 -> Skill-icon-id(20023) + 110131 -> Skill-icon-id(20013) + 110141 -> Skill-icon-id(20043) + 110171 -> Skill-icon-id(20013) + 110181 -> Skill-icon-id(20013) + 110231 -> Skill-icon-id(20013) + 110241 -> Skill-icon-id(20013) + 110301 -> Skill-icon-id(20023) + 110401 -> Skill-icon-id(20013) + 110451 -> Skill-icon-id(20013) + 110561 -> Skill-icon-id(20013) + 200011 -> Skill-icon-id(10011) + 200012 -> Skill-icon-id(10011) + 200013 -> Skill-icon-id(10014) + 200021 -> Skill-icon-id(10011) + 200022 -> Skill-icon-id(10011) + 200023 -> Skill-icon-id(10014) + 200031 -> Skill-icon-id(10021) + 200032 -> Skill-icon-id(10021) + 200033 -> Skill-icon-id(10024) + 200041 -> Skill-icon-id(10021) + 200042 -> Skill-icon-id(10021) + 200043 -> Skill-icon-id(10024) + 200051 -> Skill-icon-id(10021) + 200052 -> Skill-icon-id(10021) + 200053 -> Skill-icon-id(10024) + 200061 -> Skill-icon-id(10021) + 200062 -> Skill-icon-id(10021) + 200063 -> Skill-icon-id(10024) + 200064 -> Skill-icon-id(10022) + 200071 -> Skill-icon-id(10021) + 200072 -> Skill-icon-id(10021) + 200073 -> Skill-icon-id(10024) + 200081 -> Skill-icon-id(10021) + 200082 -> Skill-icon-id(10021) + 200083 -> Skill-icon-id(10024) + 200091 -> Skill-icon-id(10021) + 200092 -> Skill-icon-id(10021) + 200093 -> Skill-icon-id(10024) + 200101 -> Skill-icon-id(10021) + 200102 -> Skill-icon-id(10021) + 200103 -> Skill-icon-id(10024) + 200111 -> Skill-icon-id(10021) + 200112 -> Skill-icon-id(10021) + 200113 -> Skill-icon-id(10024) + 200121 -> Skill-icon-id(10021) + 200122 -> Skill-icon-id(10021) + 200123 -> Skill-icon-id(10024) + 200131 -> Skill-icon-id(10021) + 200132 -> Skill-icon-id(10021) + 200133 -> Skill-icon-id(10024) + 200141 -> Skill-icon-id(10021) + 200142 -> Skill-icon-id(10021) + 200143 -> Skill-icon-id(10024) + 200151 -> Skill-icon-id(10031) + 200152 -> Skill-icon-id(10031) + 200153 -> Skill-icon-id(10034) + 200161 -> Skill-icon-id(10031) + 200162 -> Skill-icon-id(10031) + 200163 -> Skill-icon-id(10034) + 200171 -> Skill-icon-id(10011) + 200172 -> Skill-icon-id(10011) + 200173 -> Skill-icon-id(10014) + 200181 -> Skill-icon-id(10011) + 200182 -> Skill-icon-id(10011) + 200183 -> Skill-icon-id(10014) + 200191 -> Skill-icon-id(10011) + 200192 -> Skill-icon-id(10011) + 200193 -> Skill-icon-id(10014) + 200194 -> Skill-icon-id(10012) + 200201 -> Skill-icon-id(10011) + 200202 -> Skill-icon-id(10011) + 200203 -> Skill-icon-id(10014) + 200211 -> Skill-icon-id(10041) + 200212 -> Skill-icon-id(10041) + 200221 -> Skill-icon-id(10041) + 200222 -> Skill-icon-id(10041) + 200231 -> Skill-icon-id(10041) + 200232 -> Skill-icon-id(10041) + 200233 -> Skill-icon-id(10044) + 200241 -> Skill-icon-id(10041) + 200242 -> Skill-icon-id(10041) + 200251 -> Skill-icon-id(10051) + 200252 -> Skill-icon-id(10051) + 200253 -> Skill-icon-id(10054) + 200261 -> Skill-icon-id(10011) + 200262 -> Skill-icon-id(10011) + 200263 -> Skill-icon-id(10014) + 200271 -> Skill-icon-id(10011) + 200272 -> Skill-icon-id(10011) + 200281 -> Skill-icon-id(10031) + 200282 -> Skill-icon-id(10031) + 200283 -> Skill-icon-id(10034) + 200291 -> Skill-icon-id(10041) + 200292 -> Skill-icon-id(10041) + 200301 -> Skill-icon-id(10011) + 200302 -> Skill-icon-id(10011) + 200311 -> Skill-icon-id(10014) + 200321 -> Skill-icon-id(10024) + 200331 -> Skill-icon-id(20012) + 200332 -> Skill-icon-id(20011) + 200333 -> Skill-icon-id(20014) + 200341 -> Skill-icon-id(20042) + 200342 -> Skill-icon-id(20041) + 200343 -> Skill-icon-id(20044) + 200351 -> Skill-icon-id(20022) + 200352 -> Skill-icon-id(20021) + 200353 -> Skill-icon-id(20024) + 200361 -> Skill-icon-id(20012) + 200362 -> Skill-icon-id(20011) + 200371 -> Skill-icon-id(20042) + 200372 -> Skill-icon-id(20041) + 200381 -> Skill-icon-id(20022) + 200382 -> Skill-icon-id(20021) + 200391 -> Skill-icon-id(20024) + 200401 -> Skill-icon-id(20024) + 200411 -> Skill-icon-id(20014) + 200421 -> Skill-icon-id(20014) + 200431 -> Skill-icon-id(20062) + 200432 -> Skill-icon-id(20061) + 200433 -> Skill-icon-id(20064) + 200441 -> Skill-icon-id(20022) + 200442 -> Skill-icon-id(20021) + 200451 -> Skill-icon-id(20052) + 200452 -> Skill-icon-id(20051) + 200461 -> Skill-icon-id(20012) + 200462 -> Skill-icon-id(20011) + 200471 -> Skill-icon-id(20022) + 200472 -> Skill-icon-id(20021) + 200481 -> Skill-icon-id(20022) + 200482 -> Skill-icon-id(20021) + 200491 -> Skill-icon-id(20042) + 200492 -> Skill-icon-id(20041) + 200501 -> Skill-icon-id(20052) + 200502 -> Skill-icon-id(20051) + 200511 -> Skill-icon-id(20012) + 200512 -> Skill-icon-id(20011) + 200521 -> Skill-icon-id(20024) + 200531 -> Skill-icon-id(20042) + 200532 -> Skill-icon-id(20041) + 200541 -> Skill-icon-id(20012) + 200542 -> Skill-icon-id(20011) + 200551 -> Skill-icon-id(20042) + 200552 -> Skill-icon-id(20041) + 200561 -> Skill-icon-id(20022) + 200562 -> Skill-icon-id(20021) + 200571 -> Skill-icon-id(20022) + 200572 -> Skill-icon-id(20021) + 200581 -> Skill-icon-id(20012) + 200582 -> Skill-icon-id(20011) + 200591 -> Skill-icon-id(20012) + 200592 -> Skill-icon-id(20011) + 200601 -> Skill-icon-id(20042) + 200602 -> Skill-icon-id(20041) + 200611 -> Skill-icon-id(20012) + 200612 -> Skill-icon-id(20011) + 200621 -> Skill-icon-id(20022) + 200622 -> Skill-icon-id(20021) + 200631 -> Skill-icon-id(20012) + 200632 -> Skill-icon-id(20011) + 200641 -> Skill-icon-id(20042) + 200642 -> Skill-icon-id(20041) + 200651 -> Skill-icon-id(20042) + 200652 -> Skill-icon-id(20041) + 200662 -> Skill-icon-id(20021) + 200671 -> Skill-icon-id(20012) + 200672 -> Skill-icon-id(20011) + 200681 -> Skill-icon-id(20012) + 200682 -> Skill-icon-id(20011) + 200691 -> Skill-icon-id(20022) + 200692 -> Skill-icon-id(20021) + 200701 -> Skill-icon-id(20042) + 200702 -> Skill-icon-id(20041) + 200711 -> Skill-icon-id(20022) + 200712 -> Skill-icon-id(20021) + 200721 -> Skill-icon-id(20012) + 200722 -> Skill-icon-id(20011) + 200731 -> Skill-icon-id(20012) + 200732 -> Skill-icon-id(20011) + 200741 -> Skill-icon-id(20022) + 200742 -> Skill-icon-id(20021) + 200751 -> Skill-icon-id(20012) + 200752 -> Skill-icon-id(20011) + 200761 -> Skill-icon-id(20022) + 200762 -> Skill-icon-id(20021) + 200771 -> Skill-icon-id(30051) + 200772 -> Skill-icon-id(30052) + 200781 -> Skill-icon-id(30051) + 200791 -> Skill-icon-id(30041) + 200801 -> Skill-icon-id(30041) + 200811 -> Skill-icon-id(30041) + 200821 -> Skill-icon-id(30041) + 200831 -> Skill-icon-id(30051) + 200841 -> Skill-icon-id(30051) + 200851 -> Skill-icon-id(30011) + 200861 -> Skill-icon-id(30051) + 200871 -> Skill-icon-id(30051) + 200881 -> Skill-icon-id(30011) + 200891 -> Skill-icon-id(30051) + 200901 -> Skill-icon-id(30051) + 200911 -> Skill-icon-id(30011) + 200921 -> Skill-icon-id(30051) + 200931 -> Skill-icon-id(30051) + 200941 -> Skill-icon-id(30011) + 200951 -> Skill-icon-id(10021) + 200952 -> Skill-icon-id(10021) + 200953 -> Skill-icon-id(10024) + 200961 -> Skill-icon-id(20011) + 200962 -> Skill-icon-id(20011) + 200971 -> Skill-icon-id(20011) + 200972 -> Skill-icon-id(20011) + 200981 -> Skill-icon-id(20012) + 200982 -> Skill-icon-id(20011) + 200991 -> Skill-icon-id(20042) + 200992 -> Skill-icon-id(20041) + 201001 -> Skill-icon-id(20052) + 201002 -> Skill-icon-id(20051) + 201011 -> Skill-icon-id(30012) + 201012 -> Skill-icon-id(30011) + 201021 -> Skill-icon-id(30052) + 201022 -> Skill-icon-id(30051) + 201031 -> Skill-icon-id(20011) + 201032 -> Skill-icon-id(20011) + 201041 -> Skill-icon-id(20011) + 201042 -> Skill-icon-id(20011) + 201051 -> Skill-icon-id(20012) + 201052 -> Skill-icon-id(20011) + 201061 -> Skill-icon-id(20042) + 201062 -> Skill-icon-id(20041) + 201071 -> Skill-icon-id(20012) + 201072 -> Skill-icon-id(20011) + 201081 -> Skill-icon-id(30012) + 201082 -> Skill-icon-id(30011) + 201091 -> Skill-icon-id(30022) + 201092 -> Skill-icon-id(30021) + 201101 -> Skill-icon-id(20011) + 201102 -> Skill-icon-id(20011) + 201111 -> Skill-icon-id(20011) + 201112 -> Skill-icon-id(20011) + 201121 -> Skill-icon-id(20092) + 201122 -> Skill-icon-id(20091) + 201131 -> Skill-icon-id(20052) + 201132 -> Skill-icon-id(20051) + 201141 -> Skill-icon-id(20022) + 201142 -> Skill-icon-id(20021) + 201151 -> Skill-icon-id(30012) + 201152 -> Skill-icon-id(30011) + 201161 -> Skill-icon-id(30052) + 201162 -> Skill-icon-id(30051) + 201171 -> Skill-icon-id(20011) + 201172 -> Skill-icon-id(20011) + 201181 -> Skill-icon-id(20011) + 201182 -> Skill-icon-id(20011) + 201191 -> Skill-icon-id(20012) + 201192 -> Skill-icon-id(20011) + 201201 -> Skill-icon-id(20022) + 201202 -> Skill-icon-id(20021) + 201211 -> Skill-icon-id(20012) + 201212 -> Skill-icon-id(20011) + 201221 -> Skill-icon-id(30052) + 201222 -> Skill-icon-id(30051) + 201231 -> Skill-icon-id(30072) + 201232 -> Skill-icon-id(30071) + 201241 -> Skill-icon-id(20011) + 201242 -> Skill-icon-id(20011) + 201251 -> Skill-icon-id(20011) + 201252 -> Skill-icon-id(20011) + 201261 -> Skill-icon-id(20052) + 201262 -> Skill-icon-id(20051) + 201272 -> Skill-icon-id(20011) + 201281 -> Skill-icon-id(20022) + 201282 -> Skill-icon-id(20021) + 201291 -> Skill-icon-id(20042) + 201292 -> Skill-icon-id(20041) + 201302 -> Skill-icon-id(30021) + 201311 -> Skill-icon-id(20011) + 201312 -> Skill-icon-id(20011) + 201321 -> Skill-icon-id(20011) + 201322 -> Skill-icon-id(20011) + 201331 -> Skill-icon-id(20042) + 201332 -> Skill-icon-id(20041) + 201341 -> Skill-icon-id(20042) + 201342 -> Skill-icon-id(20041) + 201351 -> Skill-icon-id(20022) + 201352 -> Skill-icon-id(20021) + 201361 -> Skill-icon-id(20042) + 201362 -> Skill-icon-id(20041) + 201371 -> Skill-icon-id(30072) + 201372 -> Skill-icon-id(30071) + 201381 -> Skill-icon-id(20011) + 201382 -> Skill-icon-id(20011) + 201391 -> Skill-icon-id(20011) + 201392 -> Skill-icon-id(20011) + 201401 -> Skill-icon-id(20042) + 201402 -> Skill-icon-id(20041) + 201411 -> Skill-icon-id(20012) + 201412 -> Skill-icon-id(20011) + 201421 -> Skill-icon-id(20022) + 201422 -> Skill-icon-id(20021) + 201431 -> Skill-icon-id(20092) + 201432 -> Skill-icon-id(20091) + 201441 -> Skill-icon-id(30052) + 201442 -> Skill-icon-id(30051) + 201451 -> Skill-icon-id(20011) + 201452 -> Skill-icon-id(20011) + 201461 -> Skill-icon-id(20011) + 201462 -> Skill-icon-id(20011) + 201471 -> Skill-icon-id(20092) + 201472 -> Skill-icon-id(20091) + 201481 -> Skill-icon-id(20022) + 201482 -> Skill-icon-id(20021) + 201491 -> Skill-icon-id(20022) + 201492 -> Skill-icon-id(20021) + 201501 -> Skill-icon-id(20092) + 201502 -> Skill-icon-id(20091) + 201511 -> Skill-icon-id(30012) + 201512 -> Skill-icon-id(30011) + 201521 -> Skill-icon-id(10051) + 201522 -> Skill-icon-id(10051) + 201531 -> Skill-icon-id(10051) + 201532 -> Skill-icon-id(10051) + 201541 -> Skill-icon-id(10051) + 201542 -> Skill-icon-id(10051) + 201551 -> Skill-icon-id(10051) + 201552 -> Skill-icon-id(10051) + 201561 -> Skill-icon-id(10062) + 201562 -> Skill-icon-id(10061) + 201571 -> Skill-icon-id(20021) + 201581 -> Skill-icon-id(20041) + 201591 -> Skill-icon-id(20011) + 201592 -> Skill-icon-id(20012) + 201601 -> Skill-icon-id(20041) + 201611 -> Skill-icon-id(20011) + 201612 -> Skill-icon-id(20012) + 201621 -> Skill-icon-id(20021) + 201631 -> Skill-icon-id(10011) + 201641 -> Skill-icon-id(10011) + 201651 -> Skill-icon-id(20011) + 201661 -> Skill-icon-id(20011) + 201671 -> Skill-icon-id(20012) + 201672 -> Skill-icon-id(20011) + 201681 -> Skill-icon-id(20052) + 201682 -> Skill-icon-id(20051) + 201691 -> Skill-icon-id(20022) + 201692 -> Skill-icon-id(20021) + 201701 -> Skill-icon-id(20012) + 201702 -> Skill-icon-id(20011) + 201801 -> Skill-icon-id(10014) + 201902 -> Skill-icon-id(20041) + 202002 -> Skill-icon-id(20021) + 202022 -> Skill-icon-id(20011) + 202032 -> Skill-icon-id(20011) + 202051 -> Skill-icon-id(40012) + 210011 -> Skill-icon-id(20102) + 210012 -> Skill-icon-id(20101) + 210021 -> Skill-icon-id(20112) + 210022 -> Skill-icon-id(20111) + 210031 -> Skill-icon-id(20122) + 210032 -> Skill-icon-id(20121) + 210041 -> Skill-icon-id(20102) + 210042 -> Skill-icon-id(20101) + 210051 -> Skill-icon-id(20132) + 210052 -> Skill-icon-id(20131) + 300011 -> Skill-icon-id(10021) + 300021 -> Skill-icon-id(10012) + 300031 -> Skill-icon-id(10011) + 300041 -> Skill-icon-id(10014) + 300051 -> Skill-icon-id(20015) + 300061 -> Skill-icon-id(20012) + 300071 -> Skill-icon-id(10011) + 300081 -> Skill-icon-id(10021) + 300091 -> Skill-icon-id(10031) + 300101 -> Skill-icon-id(20022) + 900011 -> Skill-icon-id(20011) + 900021 -> Skill-icon-id(20011) + 900031 -> Skill-icon-id(20011) + 900041 -> Skill-icon-id(20041) + 900051 -> Skill-icon-id(20011) + 900061 -> Skill-icon-id(20011) + 900071 -> Skill-icon-id(20011) + 900081 -> Skill-icon-id(20011) + 900091 -> Skill-icon-id(20011) + 900101 -> Skill-icon-id(20041) + 900111 -> Skill-icon-id(20011) + 900121 -> Skill-icon-id(20011) + 900131 -> Skill-icon-id(20011) + 900141 -> Skill-icon-id(20011) + 900151 -> Skill-icon-id(20011) + 900161 -> Skill-icon-id(20011) + 900171 -> Skill-icon-id(20011) + 900181 -> Skill-icon-id(20011) + 900191 -> Skill-icon-id(20011) + 900201 -> Skill-icon-id(20041) + 900211 -> Skill-icon-id(20011) + 900221 -> Skill-icon-id(20011) + 900231 -> Skill-icon-id(20011) + 900241 -> Skill-icon-id(20011) + 900251 -> Skill-icon-id(20011) + 900261 -> Skill-icon-id(20011) + 900271 -> Skill-icon-id(20041) + 900281 -> Skill-icon-id(20011) + 900301 -> Skill-icon-id(20011) + 900321 -> Skill-icon-id(20021) + 900351 -> Skill-icon-id(20011) + 900371 -> Skill-icon-id(20011) + 900381 -> Skill-icon-id(20011) + 900391 -> Skill-icon-id(20011) + 900401 -> Skill-icon-id(20041) + 900411 -> Skill-icon-id(20011) + 900451 -> Skill-icon-id(20021) + 900461 -> Skill-icon-id(20011) + 900481 -> Skill-icon-id(20011) + 900501 -> Skill-icon-id(20011) + 900521 -> Skill-icon-id(20021) + 900561 -> Skill-icon-id(20011) + 900581 -> Skill-icon-id(20011) + 900591 -> Skill-icon-id(20041) + 900601 -> Skill-icon-id(20011) + 900611 -> Skill-icon-id(20011) + 910011 -> Skill-icon-id(20021) + 910031 -> Skill-icon-id(20011) + 910041 -> Skill-icon-id(20011) + 910061 -> Skill-icon-id(20011) + 910111 -> Skill-icon-id(20021) + 910131 -> Skill-icon-id(20011) + 910141 -> Skill-icon-id(20041) + 910171 -> Skill-icon-id(20011) + 910181 -> Skill-icon-id(20011) + 910231 -> Skill-icon-id(20011) + 910241 -> Skill-icon-id(20011) + 910301 -> Skill-icon-id(20021) + 910401 -> Skill-icon-id(20011) + 910451 -> Skill-icon-id(20011) + 910561 -> Skill-icon-id(20011) + _ -> Skill-icon-id(0) -pub fun skill/(==)(a: skill, b: skill): bool - a.skill-id == b.skill-id +// Get the name for a skill group. +// Skill group names are the name of the base skill in the group. +// If there is no skill group with the given ID, the result is the numeric ID. +pub fun skill-group/show(sg: skill-group-id): string + match sg.game-id + 1007 ->"Warning Shot!" + 1008 ->"Xceleration" + 1009 ->"Red Ace" + 1011 ->"Focused Mind" + 1014 ->"Corazón ☆ Ardiente" + 1018 ->"Empress's Pride" + 1024 ->"1st Place Kiss☆" + 1027 ->"Feel the Burn!" + 1032 ->"Introduction to Physiology" + 1035 ->"V Is for Victory!" + 1041 ->"Class Rep + Speed = Bakushin" + 1045 ->"Clear Heart" + 1052 ->"Super-Duper Stoked" + 1056 ->"Luck Be with Me!" + 1060 ->"I Can Win Sometimes, Right?" + 1061 ->"Call Me King" + 10001 ->"Shooting Star" + 10002 ->"The View from the Lead Is Mine!" + 10003 ->"Sky-High Teio Step" + 10004 ->"Red Shift/LP1211-M" + 10005 ->"Lights of Vaudeville" + 10006 ->"Triumphant Pulse" + 10007 ->"Anchors Aweigh!" + 10008 ->"Cut and Drive!" + 10009 ->"Resplendent Red Ace" + 10010 ->"Shooting for Victory!" + 10011 ->"Where There's a Will, There's a Way" + 10012 ->"You and Me! One-on-One!" + 10013 ->"The Duty of Dignity Calls" + 10014 ->"Victoria por plancha ☆" + 10015 ->"This Dance Is for Vittoria!" + 10016 ->"Shadow Break" + 10017 ->"Behold Thine Emperor's Divine Might" + 10018 ->"Blazing Pride" + 10019 ->"OMG! (゚∀゚) The Final Sprint! ☆" + 10020 ->"Angling and Scheming" + 10021 ->"White Lightning Comin' Through!" + 10022 ->"Fairy Tale" + 10023 ->"∴win Q.E.D." + 10024 ->"Flashy☆Landing" + 10025 ->"Chasing After You" + 10026 ->"G00 1st. F∞;" + 10027 ->"Let's Pump Some Iron!" + 10028 ->"YUMMY☆SPEED!" + 10030 ->"Blue Rose Closer" + 10032 ->"U=ma2" + 10035 ->"Our Ticket to Win!" + 10037 ->"Schwarzes Schwert" + 10038 ->"#LookatCurren" + 10039 ->"A Princess Must Seize Victory!" + 10040 ->"KEEP IT REAL." + 10041 ->"Genius x Bakushin = Victory" + 10045 ->"Pure Heart" + 10046 ->"SPARKLY☆STARDOM" + 10048 ->"Pop & Polish" + 10050 ->"Nemesis" + 10052 ->"Super-Duper Climax" + 10056 ->"I See Victory in My Future!" + 10058 ->"I Never Goof Up!" + 10059 ->"Moving Past, and Beyond" + 10060 ->"Just a Little Farther!" + 10061 ->"Prideful King" + 11001 ->"Dazzl'n ♪ Diver" + 11003 ->"Certain Victory" + 11004 ->"A Kiss for Courage" + 11006 ->"Festive Miracle" + 11011 ->"Superior Heal" + 11013 ->"Legacy of the Strong" + 11014 ->"Condor's Fury" + 11017 ->"Arrows Whistle, Shadows Disperse" + 11018 ->"Eternal Moments" + 11023 ->"Presents from X" + 11024 ->"Flowery☆Maneuver" + 11030 ->"Every Rose Has Its Fangs" + 11040 ->"Dancing in the Leaves" + 11045 ->"Give Mummy a Hug ♡" + 11056 ->"Bountiful Harvest" + 20001 ->"Right-Handed ○" + 20002 ->"Left-Handed ○" + 20003 ->"Tokyo Racecourse ○" + 20004 ->"Nakayama Racecourse ○" + 20005 ->"Hanshin Racecourse ○" + 20006 ->"Kyoto Racecourse ○" + 20007 ->"Chukyo Racecourse ○" + 20008 ->"Sapporo Racecourse ○" + 20009 ->"Hakodate Racecourse ○" + 20010 ->"Fukushima Racecourse ○" + 20011 ->"Niigata Racecourse ○" + 20012 ->"Kokura Racecourse ○" + 20013 ->"Standard Distance ○" + 20014 ->"Non-Standard Distance ○" + 20015 ->"Firm Conditions ○" + 20016 ->"Wet Conditions ○" + 20017 ->"Spring Runner ○" + 20018 ->"Summer Runner ○" + 20019 ->"Fall Runner ○" + 20020 ->"Winter Runner ○" + 20021 ->"Sunny Days ○" + 20022 ->"Cloudy Days ○" + 20023 ->"Rainy Days ○" + 20024 ->"Snowy Days ○" + 20025 ->"Inner Post Proficiency ○" + 20026 ->"Outer Post Proficiency ○" + 20027 ->"Maverick ○" + 20028 ->"Competitive Spirit ○" + 20029 ->"Target in Sight ○" + 20030 ->"Long Shot ○" + 20033 ->"Corner Adept ○" + 20034 ->"Corner Acceleration ○" + 20035 ->"Corner Recovery ○" + 20036 ->"Straightaway Adept" + 20037 ->"Straightaway Acceleration" + 20038 ->"Straightaway Recovery" + 20043 ->"Focus" + 20044 ->"Lay Low" + 20045 ->"Prudent Positioning" + 20046 ->"Ramp Up" + 20047 ->"Pace Strategy" + 20048 ->"Calm in a Crowd" + 20049 ->"Nimble Navigator" + 20050 ->"Go with the Flow" + 20051 ->"Homestretch Haste" + 20053 ->"Early Lead" + 20054 ->"Fast-Paced" + 20055 ->"Final Push" + 20056 ->"Stamina to Spare" + 20057 ->"Preferred Position" + 20058 ->"Prepared to Pass" + 20059 ->"Position Pilfer" + 20060 ->"Slick Surge" + 20061 ->"Outer Swell" + 20062 ->"Standing By" + 20063 ->"Masterful Gambit" + 20064 ->"Straightaway Spurt" + 20065 ->"Sprinting Gear" + 20066 ->"Wait-and-See" + 20067 ->"Gap Closer" + 20068 ->"Productive Plan" + 20069 ->"Watchful Eye" + 20070 ->"Updrafters" + 20071 ->"Rosy Outlook" + 20072 ->"Up-Tempo" + 20073 ->"Steadfast" + 20074 ->"Deep Breaths" + 20075 ->"Inside Scoop" + 20076 ->"Extra Tank" + 20077 ->"Trick (Front)" + 20078 ->"Trick (Rear)" + 20079 ->"Frenzied Front Runners" + 20080 ->"Frenzied Pace Chasers" + 20081 ->"Frenzied Late Surgers" + 20082 ->"Frenzied End Closers" + 20083 ->"Subdued Front Runners" + 20084 ->"Flustered Front Runners" + 20085 ->"Hesitant Front Runners" + 20086 ->"Subdued Pace Chasers" + 20087 ->"Flustered Pace Chasers" + 20088 ->"Hesitant Pace Chasers" + 20089 ->"Subdued Late Surgers" + 20090 ->"Flustered Late Surgers" + 20091 ->"Hesitant Late Surgers" + 20092 ->"Subdued End Closers" + 20093 ->"Flustered End Closers" + 20094 ->"Hesitant End Closers" + 20095 ->"Oi Racecourse ○" + 20096 ->"Sprint Straightaways ○" + 20097 ->"Sprint Corners ○" + 20098 ->"Huge Lead" + 20099 ->"Countermeasure" + 20100 ->"Meticulous Measures" + 20101 ->"Intimidate" + 20102 ->"Stop Right There!" + 20103 ->"Mile Straightaways ○" + 20104 ->"Mile Corners ○" + 20105 ->"Shifting Gears" + 20106 ->"Acceleration" + 20107 ->"Unyielding Spirit" + 20108 ->"Speed Eater" + 20109 ->"Opening Gambit" + 20110 ->"Medium Straightaways ○" + 20111 ->"Medium Corners ○" + 20112 ->"Hawkeye" + 20113 ->"Thunderbolt Step" + 20114 ->"Soft Step" + 20115 ->"Tether" + 20116 ->"Murmur" + 20117 ->"Long Straightaways ○" + 20118 ->"Long Corners ○" + 20119 ->"Keeping the Lead" + 20120 ->"Passing Pro" + 20121 ->"Pressure" + 20122 ->"Stamina Eater" + 20123 ->"Smoke Screen" + 20124 ->"Front Runner Straightaways ○" + 20125 ->"Front Runner Corners ○" + 20126 ->"Dodging Danger" + 20127 ->"Leader's Pride" + 20128 ->"Moxie" + 20129 ->"Second Wind" + 20130 ->"Restart" + 20131 ->"Pace Chaser Straightaways ○" + 20132 ->"Pace Chaser Corners ○" + 20133 ->"Shrewd Step" + 20134 ->"Straight Descent" + 20135 ->"Hydrate" + 20136 ->"Tactical Tweak" + 20137 ->"Disorient" + 20138 ->"Late Surger Straightaways ○" + 20139 ->"Late Surger Corners ○" + 20140 ->"Fighter" + 20141 ->"1,500,000 CC" + 20142 ->"A Small Breather" + 20143 ->"Studious" + 20144 ->"Sharp Gaze" + 20145 ->"End Closer Straightaways ○" + 20146 ->"End Closer Corners ○" + 20147 ->"I Can See Right Through You" + 20148 ->"After-School Stroll" + 20149 ->"Levelheaded" + 20150 ->"Strategist" + 20151 ->"Intense Gaze" + 20152 ->"Front Runner Savvy ○" + 20153 ->"Pace Chaser Savvy ○" + 20154 ->"Late Surger Savvy ○" + 20155 ->"End Closer Savvy ○" + 20156 ->"Lucky Seven" + 20157 ->"Triple 7s" + 20158 ->"Highlander" + 20159 ->"Uma Stan" + 20160 ->"Groundwork" + 20161 ->"Tail Held High" + 20162 ->"Shake It Out" + 20163 ->"Sympathy" + 20164 ->"Lone Wolf" + 20165 ->"Slipstream" + 20166 ->"Playtime's Over!" + 20167 ->"Top Pick" + 20168 ->"Forward, March!" + 20169 ->"Be Still" + 20170 ->"All I've Got" + 20190 ->"Head-On" + 20200 ->"Familiar Ground" + 20202 ->"Early Start" + 20203 ->"Risky Business" + 21001 ->"Ignited Spirit SPD" + 21002 ->"Ignited Spirit STA" + 21003 ->"Ignited Spirit PWR" + 21004 ->"Ignited Spirit GUTS" + 21005 ->"Ignited Spirit WIT" + 30001 ->"Unquenched Thirst" + 30002 ->"Unchanging" + 30003 ->"Towards the Scenery I Seek" + 30004 ->"Creeping Anxiety" + 30005 ->"Blatant Fear" + 30006 ->"Dream Run" + 30007 ->"Show Me What Lies Beyond!" + 30008 ->"Hoiya! Have a Good Run!" + 30009 ->"As a Friend and Rival" + 30010 ->"Cheers of a Fellow Dreamer" + x -> "skill group " ++ x.show -// Get the skills in a skill group. -pub fun skill-group/skills(g: skill-group): list - match g - Warning-Shot -> [Warning-Shot, ] - Xceleration -> [Xceleration, ] - Red-Ace -> [Red-Ace, ] - Focused-Mind -> [Focused-Mind, ] - Corazon-Ardiente -> [Corazon-Ardiente, ] - Empresss-Pride -> [Empresss-Pride, ] - First-Place-Kiss -> [First-Place-Kiss, ] - Feel-the-Burn -> [Feel-the-Burn, ] - Introduction-to-Physiology -> [Introduction-to-Physiology, ] - V-Is-for-Victory -> [V-Is-for-Victory, ] - Class-Rep-Speed-Bakushin -> [Class-Rep-Speed-Bakushin, ] - Clear-Heart -> [Clear-Heart, ] - Super-Duper-Stoked -> [Super-Duper-Stoked, ] - Luck-Be-with-Me -> [Luck-Be-with-Me, ] - I-Can-Win-Sometimes-Right -> [I-Can-Win-Sometimes-Right, ] - Call-Me-King -> [Call-Me-King, ] - Shooting-Star -> [Shooting-Star, Shooting-Star-Inherit, ] - The-View-from-the-Lead-Is-Mine -> [The-View-from-the-Lead-Is-Mine, The-View-from-the-Lead-Is-Mine-Inherit, ] - Sky-High-Teio-Step -> [Sky-High-Teio-Step, Sky-High-Teio-Step-Inherit, ] - Red-Shift-LP1211-M -> [Red-Shift-LP1211-M, Red-Shift-LP1211-M-Inherit, ] - Lights-of-Vaudeville -> [Lights-of-Vaudeville, Lights-of-Vaudeville-Inherit, ] - Triumphant-Pulse -> [Triumphant-Pulse, Triumphant-Pulse-Inherit, ] - Anchors-Aweigh -> [Anchors-Aweigh, Anchors-Aweigh-Inherit, ] - Cut-and-Drive -> [Cut-and-Drive, Cut-and-Drive-Inherit, ] - Resplendent-Red-Ace -> [Resplendent-Red-Ace, Resplendent-Red-Ace-Inherit, ] - Shooting-for-Victory -> [Shooting-for-Victory, Shooting-for-Victory-Inherit, ] - Where-Theres-a-Will-Theres-a-Way -> [Where-Theres-a-Will-Theres-a-Way, Where-Theres-a-Will-Theres-a-Way-Inherit, ] - You-and-Me-One-on-One -> [You-and-Me-One-on-One, You-and-Me-One-on-One-Inherit, ] - The-Duty-of-Dignity-Calls -> [The-Duty-of-Dignity-Calls, The-Duty-of-Dignity-Calls-Inherit, ] - Victoria-por-plancha -> [Victoria-por-plancha, Victoria-por-plancha-Inherit, ] - This-Dance-Is-for-Vittoria -> [This-Dance-Is-for-Vittoria, This-Dance-Is-for-Vittoria-Inherit, ] - Shadow-Break -> [Shadow-Break, Shadow-Break-Inherit, ] - Behold-Thine-Emperors-Divine-Might -> [Behold-Thine-Emperors-Divine-Might, Behold-Thine-Emperors-Divine-Might-Inherit, ] - Blazing-Pride -> [Blazing-Pride, Blazing-Pride-Inherit, ] - OMG-The-Final-Sprint -> [OMG-The-Final-Sprint, OMG-The-Final-Sprint-Inherit, ] - Angling-and-Scheming -> [Angling-and-Scheming, Angling-and-Scheming-Inherit, ] - White-Lightning-Comin-Through -> [White-Lightning-Comin-Through, White-Lightning-Comin-Through-Inherit, ] - Fairy-Tale -> [Fairy-Tale, Fairy-Tale-Inherit, ] - Win-QED -> [Win-QED, Win-QED-Inherit, ] - Flashy-Landing -> [Flashy-Landing, Flashy-Landing-Inherit, ] - Chasing-After-You -> [Chasing-After-You, Chasing-After-You-Inherit, ] - G00-First-FInfinity -> [G00-First-FInfinity, G00-First-FInfinity-Inherit, ] - Lets-Pump-Some-Iron -> [Lets-Pump-Some-Iron, Lets-Pump-Some-Iron-Inherit, ] - YUMMY-SPEED -> [YUMMY-SPEED, YUMMY-SPEED-Inherit, ] - Blue-Rose-Closer -> [Blue-Rose-Closer, Blue-Rose-Closer-Inherit, ] - U-ma2 -> [U-ma2, U-ma2-Inherit, ] - Our-Ticket-to-Win -> [Our-Ticket-to-Win, Our-Ticket-to-Win-Inherit, ] - Schwarzes-Schwert -> [Schwarzes-Schwert, Schwarzes-Schwert-Inherit, ] - LookatCurren -> [LookatCurren, LookatCurren-Inherit, ] - A-Princess-Must-Seize-Victory -> [A-Princess-Must-Seize-Victory, A-Princess-Must-Seize-Victory-Inherit, ] - KEEP-IT-REAL -> [KEEP-IT-REAL, KEEP-IT-REAL-Inherit, ] - Genius-x-Bakushin-Victory -> [Genius-x-Bakushin-Victory, Genius-x-Bakushin-Victory-Inherit, ] - Pure-Heart -> [Pure-Heart, Pure-Heart-Inherit, ] - SPARKLY-STARDOM -> [SPARKLY-STARDOM, SPARKLY-STARDOM-Inherit, ] - Pop-and-Polish -> [Pop-and-Polish, Pop-and-Polish-Inherit, ] - Nemesis -> [Nemesis, Nemesis-Inherit, ] - Super-Duper-Climax -> [Super-Duper-Climax, Super-Duper-Climax-Inherit, ] - I-See-Victory-in-My-Future -> [I-See-Victory-in-My-Future, I-See-Victory-in-My-Future-Inherit, ] - I-Never-Goof-Up -> [I-Never-Goof-Up, I-Never-Goof-Up-Inherit, ] - Moving-Past-and-Beyond -> [Moving-Past-and-Beyond, Moving-Past-and-Beyond-Inherit, ] - Just-a-Little-Farther -> [Just-a-Little-Farther, Just-a-Little-Farther-Inherit, ] - Prideful-King -> [Prideful-King, Prideful-King-Inherit, ] - Dazzl-n-Diver -> [Dazzl-n-Diver, Dazzl-n-Diver-Inherit, ] - Certain-Victory -> [Certain-Victory, Certain-Victory-Inherit, ] - A-Kiss-for-Courage -> [A-Kiss-for-Courage, A-Kiss-for-Courage-Inherit, ] - Festive-Miracle -> [Festive-Miracle, Festive-Miracle-Inherit, ] - Superior-Heal -> [Superior-Heal, Superior-Heal-Inherit, ] - Legacy-of-the-Strong -> [Legacy-of-the-Strong, Legacy-of-the-Strong-Inherit, ] - Condors-Fury -> [Condors-Fury, Condors-Fury-Inherit, ] - Arrows-Whistle-Shadows-Disperse -> [Arrows-Whistle-Shadows-Disperse, Arrows-Whistle-Shadows-Disperse-Inherit, ] - Eternal-Moments -> [Eternal-Moments, Eternal-Moments-Inherit, ] - Presents-from-X -> [Presents-from-X, Presents-from-X-Inherit, ] - Flowery-Maneuver -> [Flowery-Maneuver, Flowery-Maneuver-Inherit, ] - Every-Rose-Has-Its-Fangs -> [Every-Rose-Has-Its-Fangs, Every-Rose-Has-Its-Fangs-Inherit, ] - Dancing-in-the-Leaves -> [Dancing-in-the-Leaves, Dancing-in-the-Leaves-Inherit, ] - Give-Mummy-a-Hug -> [Give-Mummy-a-Hug, Give-Mummy-a-Hug-Inherit, ] - Bountiful-Harvest -> [Bountiful-Harvest, Bountiful-Harvest-Inherit, ] - Right-Handed -> [Right-Handed-Lv2, Right-Handed, Right-Handed-x, ] - Left-Handed -> [Left-Handed-Lv2, Left-Handed, Left-Handed-x, ] - Tokyo-Racecourse -> [Tokyo-Racecourse-Lv2, Tokyo-Racecourse, Tokyo-Racecourse-x, ] - Nakayama-Racecourse -> [Nakayama-Racecourse-Lv2, Nakayama-Racecourse, Nakayama-Racecourse-x, ] - Hanshin-Racecourse -> [Hanshin-Racecourse-Lv2, Hanshin-Racecourse, Hanshin-Racecourse-x, ] - Kyoto-Racecourse -> [Kyoto-Racecourse-Lv2, Kyoto-Racecourse, Kyoto-Racecourse-x, Yodo-Invicta, ] - Chukyo-Racecourse -> [Chukyo-Racecourse-Lv2, Chukyo-Racecourse, Chukyo-Racecourse-x, ] - Sapporo-Racecourse -> [Sapporo-Racecourse-Lv2, Sapporo-Racecourse, Sapporo-Racecourse-x, ] - Hakodate-Racecourse -> [Hakodate-Racecourse-Lv2, Hakodate-Racecourse, Hakodate-Racecourse-x, ] - Fukushima-Racecourse -> [Fukushima-Racecourse-Lv2, Fukushima-Racecourse, Fukushima-Racecourse-x, ] - Niigata-Racecourse -> [Niigata-Racecourse-Lv2, Niigata-Racecourse, Niigata-Racecourse-x, ] - Kokura-Racecourse -> [Kokura-Racecourse-Lv2, Kokura-Racecourse, Kokura-Racecourse-x, ] - Standard-Distance -> [Standard-Distance-Lv2, Standard-Distance, Standard-Distance-x, ] - Non-Standard-Distance -> [Non-Standard-Distance-Lv2, Non-Standard-Distance, Non-Standard-Distance-x, ] - Firm-Conditions -> [Firm-Conditions-Lv2, Firm-Conditions, Firm-Conditions-x, ] - Wet-Conditions -> [Wet-Conditions-Lv2, Wet-Conditions, Wet-Conditions-x, ] - Spring-Runner -> [Spring-Runner-Lv2, Spring-Runner, Spring-Runner-x, ] - Summer-Runner -> [Summer-Runner-Lv2, Summer-Runner, Summer-Runner-x, ] - Fall-Runner -> [Fall-Runner-Lv2, Fall-Runner, Fall-Runner-x, Fall-Frenzy, ] - Winter-Runner -> [Winter-Runner-Lv2, Winter-Runner, Winter-Runner-x, ] - Sunny-Days -> [Sunny-Days-Lv2, Sunny-Days, ] - Cloudy-Days -> [Cloudy-Days-Lv2, Cloudy-Days, ] - Rainy-Days -> [Rainy-Days-Lv2, Rainy-Days, Rainy-Days-x, ] - Snowy-Days -> [Snowy-Days-Lv2, Snowy-Days, ] - Inner-Post-Proficiency -> [Inner-Post-Proficiency-Lv2, Inner-Post-Proficiency, Inner-Post-Averseness, ] - Outer-Post-Proficiency -> [Outer-Post-Proficiency-Lv2, Outer-Post-Proficiency, Outer-Post-Averseness, ] - Maverick -> [Maverick-Lv2, Maverick, ] - Competitive-Spirit -> [Competitive-Spirit-Lv2, Competitive-Spirit, Wallflower, ] - Target-in-Sight -> [Target-in-Sight-Lv2, Target-in-Sight, ] - Long-Shot -> [Long-Shot-Lv2, Long-Shot, ] - Corner-Adept -> [Professor-of-Curvature, Corner-Adept, Corner-Adept-x, ] - Corner-Acceleration -> [Corner-Connoisseur, Corner-Acceleration, Corner-Acceleration-x, ] - Corner-Recovery -> [Swinging-Maestro, Corner-Recovery, Corner-Recovery-x, ] - Straightaway-Adept -> [Beeline-Burst, Straightaway-Adept, ] - Straightaway-Acceleration -> [Rushing-Gale, Straightaway-Acceleration, ] - Straightaway-Recovery -> [Breath-of-Fresh-Air, Straightaway-Recovery, ] - Focus -> [Concentration, Focus, Gatekept, ] - Lay-Low -> [Iron-Will, Lay-Low, ] - Prudent-Positioning -> [Center-Stage, Prudent-Positioning, ] - Ramp-Up -> [Its-On, Ramp-Up, ] - Pace-Strategy -> [Indomitable, Pace-Strategy, ] - Calm-in-a-Crowd -> [Unruffled, Calm-in-a-Crowd, ] - Nimble-Navigator -> [No-Stopping-Me, Nimble-Navigator, ] - Go-with-the-Flow -> [Lane-Legerdemain, Go-with-the-Flow, ] - Homestretch-Haste -> [In-Body-and-Mind, Homestretch-Haste, ] - Early-Lead -> [Taking-the-Lead, Early-Lead, ] - Fast-Paced -> [Escape-Artist, Fast-Paced, ] - Final-Push -> [Unrestrained, Final-Push, ] - Stamina-to-Spare -> [Calm-and-Collected, Stamina-to-Spare, ] - Preferred-Position -> [Race-Planner, Preferred-Position, ] - Prepared-to-Pass -> [Speed-Star, Prepared-to-Pass, ] - Position-Pilfer -> [Fast-and-Furious, Position-Pilfer, ] - Slick-Surge -> [On-Your-Left, Slick-Surge, ] - Outer-Swell -> [Rising-Dragon, Outer-Swell, ] - Standing-By -> [Sleeping-Lion, Standing-By, ] - Masterful-Gambit -> [Sturm-und-Drang, Masterful-Gambit, ] - Straightaway-Spurt -> [Encroaching-Shadow, Straightaway-Spurt, ] - Sprinting-Gear -> [Turbo-Sprint, Sprinting-Gear, ] - Wait-and-See -> [Wait-and-See, ] - Gap-Closer -> [Blinding-Flash, Gap-Closer, ] - Productive-Plan -> [Mile-Maven, Productive-Plan, ] - Watchful-Eye -> [Keen-Eye, Watchful-Eye, ] - Updrafters -> [Furious-Feat, Updrafters, ] - Rosy-Outlook -> [Trackblazer, Rosy-Outlook, ] - Up-Tempo -> [Killer-Tunes, Up-Tempo, ] - Steadfast -> [Unyielding, Steadfast, ] - Deep-Breaths -> [Cooldown, Deep-Breaths, ] - Inside-Scoop -> [Innate-Experience, Inside-Scoop, ] - Extra-Tank -> [Adrenaline-Rush, Extra-Tank, ] - Trick-Front -> [Trick-Front, Tantalizing-Trick, ] - Trick-Rear -> [Trick-Rear, ] - Frenzied-Front-Runners -> [Frenzied-Front-Runners, ] - Frenzied-Pace-Chasers -> [Frenzied-Pace-Chasers, ] - Frenzied-Late-Surgers -> [Frenzied-Late-Surgers, ] - Frenzied-End-Closers -> [Frenzied-End-Closers, ] - Subdued-Front-Runners -> [Subdued-Front-Runners, ] - Flustered-Front-Runners -> [Flustered-Front-Runners, ] - Hesitant-Front-Runners -> [Hesitant-Front-Runners, ] - Subdued-Pace-Chasers -> [Subdued-Pace-Chasers, ] - Flustered-Pace-Chasers -> [Flustered-Pace-Chasers, ] - Hesitant-Pace-Chasers -> [Hesitant-Pace-Chasers, ] - Subdued-Late-Surgers -> [Subdued-Late-Surgers, ] - Flustered-Late-Surgers -> [Flustered-Late-Surgers, ] - Hesitant-Late-Surgers -> [Hesitant-Late-Surgers, ] - Subdued-End-Closers -> [Subdued-End-Closers, ] - Flustered-End-Closers -> [Flustered-End-Closers, ] - Hesitant-End-Closers -> [Hesitant-End-Closers, ] - Oi-Racecourse -> [Oi-Racecourse-Lv2, Oi-Racecourse, Oi-Racecourse-x, ] - Sprint-Straightaways -> [Sprint-Straightaways-Lv2, Sprint-Straightaways, ] - Sprint-Corners -> [Sprint-Corners-Lv2, Sprint-Corners, ] - Huge-Lead -> [Staggering-Lead, Huge-Lead, ] - Countermeasure -> [Plan-X, Countermeasure, ] - Meticulous-Measures -> [Perfect-Prep, Meticulous-Measures, ] - Intimidate -> [Adored-by-All, Intimidate, ] - Stop-Right-There -> [You-ve-Got-No-Shot, Stop-Right-There, ] - Mile-Straightaways -> [Mile-Straightaways-Lv2, Mile-Straightaways, ] - Mile-Corners -> [Mile-Corners-Lv2, Mile-Corners, ] - Shifting-Gears -> [Changing-Gears, Shifting-Gears, ] - Acceleration -> [Step-on-the-Gas, Acceleration, ] - Unyielding-Spirit -> [Big-Sisterly, Unyielding-Spirit, ] - Speed-Eater -> [Greed-for-Speed, Speed-Eater, ] - Opening-Gambit -> [Battle-Formation, Opening-Gambit, ] - Medium-Straightaways -> [Medium-Straightaways-Lv2, Medium-Straightaways, ] - Medium-Corners -> [Medium-Corners-Lv2, Medium-Corners, ] - Hawkeye -> [Clairvoyance, Hawkeye, ] - Thunderbolt-Step -> [Lightning-Step, Thunderbolt-Step, ] - Soft-Step -> [Miraculous-Step, Soft-Step, ] - Tether -> [Dominator, Tether, ] - Murmur -> [Mystifying-Murmur, Murmur, ] - Long-Straightaways -> [Long-Straightaways-Lv2, Long-Straightaways, ] - Long-Corners -> [Long-Corners-Lv2, Long-Corners, ] - Keeping-the-Lead -> [Vanguard-Spirit, Keeping-the-Lead, ] - Passing-Pro -> [VIP-Pass, Passing-Pro, ] - Pressure -> [Overwhelming-Pressure, Pressure, ] - Stamina-Eater -> [Stamina-Siphon, Stamina-Eater, ] - Smoke-Screen -> [Illusionist, Smoke-Screen, ] - Front-Runner-Straightaways -> [Front-Runner-Straightaways-Lv2, Front-Runner-Straightaways, ] - Front-Runner-Corners -> [Front-Runner-Corners-Lv2, Front-Runner-Corners, ] - Dodging-Danger -> [Sixth-Sense, Dodging-Danger, ] - Leaders-Pride -> [Leaders-Pride, ] - Moxie -> [Restless, Moxie, ] - Second-Wind -> [Reignition, Second-Wind, ] - Restart -> [Restart, ] - Pace-Chaser-Straightaways -> [Pace-Chaser-Straightaways-Lv2, Pace-Chaser-Straightaways, ] - Pace-Chaser-Corners -> [Pace-Chaser-Corners-Lv2, Pace-Chaser-Corners, ] - Shrewd-Step -> [Technician, Shrewd-Step, ] - Straight-Descent -> [Determined-Descent, Straight-Descent, ] - Hydrate -> [Gourmand, Hydrate, ] - Tactical-Tweak -> [Shatterproof, Tactical-Tweak, ] - Disorient -> [Dazzling-Disorientation, Disorient, ] - Late-Surger-Straightaways -> [Late-Surger-Straightaways-Lv2, Late-Surger-Straightaways, ] - Late-Surger-Corners -> [Late-Surger-Corners-Lv2, Late-Surger-Corners, ] - Fighter -> [Hard-Worker, Fighter, ] - One-Million-CC -> [Fifteen-Million-CC, One-Million-CC, ] - A-Small-Breather -> [Relax, A-Small-Breather, ] - Studious -> [The-Bigger-Picture, Studious, ] - Sharp-Gaze -> [All-Seeing-Eyes, Sharp-Gaze, ] - End-Closer-Straightaways -> [End-Closer-Straightaways-Lv2, End-Closer-Straightaways, ] - End-Closer-Corners -> [End-Closer-Corners-Lv2, End-Closer-Corners, ] - I-Can-See-Right-Through-You -> [The-Coast-Is-Clear, I-Can-See-Right-Through-You, ] - After-School-Stroll -> [Go-Home-Specialist, After-School-Stroll, ] - Levelheaded -> [Serenity, Levelheaded, ] - Strategist -> [Crusader, Strategist, ] - Intense-Gaze -> [Petrifying-Gaze, Intense-Gaze, ] - Front-Runner-Savvy -> [Front-Runner-Savvy-Lv2, Front-Runner-Savvy, ] - Pace-Chaser-Savvy -> [Pace-Chaser-Savvy-Lv2, Pace-Chaser-Savvy, ] - Late-Surger-Savvy -> [Late-Surger-Savvy-Lv2, Late-Surger-Savvy, ] - End-Closer-Savvy -> [End-Closer-Savvy-Lv2, End-Closer-Savvy, ] - Lucky-Seven -> [Super-Lucky-Seven, Lucky-Seven, ] - Triple-Sevens -> [Triple-Sevens, ] - Highlander -> [Highlander, ] - Uma-Stan -> [Uma-Stan, Superstan, ] - Groundwork -> [Groundwork, ] - Tail-Held-High -> [Tail-Held-High, Tail-Nine, ] - Shake-It-Out -> [Shake-It-Out, ] - Sympathy -> [Sympathy, ] - Lone-Wolf -> [Lone-Wolf, ] - Slipstream -> [Slipstream, ] - Playtimes-Over -> [Playtimes-Over, ] - Top-Pick -> [Trending-in-the-Charts, Top-Pick, ] - Forward-March -> [Lead-the-Charge, Forward-March, ] - Be-Still -> [Lie-in-Wait, Be-Still, ] - All-I-ve-Got -> [Come-What-May, All-I-ve-Got, ] - Head-On -> [Head-On, ] - Familiar-Ground -> [Familiar-Ground, ] - Early-Start -> [Early-Start, ] - Risky-Business -> [Risky-Business, ] - Ignited-Spirit-SPD -> [Burning-Spirit-SPD, Ignited-Spirit-SPD, ] - Ignited-Spirit-STA -> [Burning-Spirit-STA, Ignited-Spirit-STA, ] - Ignited-Spirit-PWR -> [Burning-Spirit-PWR, Ignited-Spirit-PWR, ] - Ignited-Spirit-GUTS -> [Burning-Spirit-GUTS, Ignited-Spirit-GUTS, ] - Ignited-Spirit-WIT -> [Burning-Spirit-WIT, Ignited-Spirit-WIT, ] - Unquenched-Thirst -> [Unquenched-Thirst, ] - Unchanging -> [Unchanging, ] - Towards-the-Scenery-I-Seek -> [Towards-the-Scenery-I-Seek, ] - Creeping-Anxiety -> [Creeping-Anxiety, ] - Blatant-Fear -> [Blatant-Fear, ] - Dream-Run -> [Dream-Run, ] - Show-Me-What-Lies-Beyond -> [Show-Me-What-Lies-Beyond, ] - Hoiya-Have-a-Good-Run -> [Hoiya-Have-a-Good-Run, ] - As-a-Friend-and-Rival -> [As-a-Friend-and-Rival, ] - Cheers-of-a-Fellow-Dreamer -> [Cheers-of-a-Fellow-Dreamer, ] - -// Get complete skill info. -pub fun skill/detail(^s: skill): skill-detail - match s - Warning-Shot -> Skill-detail(skill-id = 10071, name = "Warning Shot!", description = "Slightly increase velocity with a long spurt starting halfway through the race.", group = Just(Warning-Shot), rarity = Unique-Low, group-rate = 1, grade-value = 240, wit-check = False, activations = [Activation(precondition = "", condition = "distance_rate>=50&distance_rate<=60&order_rate>50", duration = 60000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Xceleration -> Skill-detail(skill-id = 10081, name = "Xceleration", description = "Become stronger at challenging rivals and moderately increase velocity when positioned toward the front with 200m or less remaining.", group = Just(Xceleration), rarity = Unique-Low, group-rate = 1, grade-value = 240, wit-check = False, activations = [Activation(precondition = "", condition = "order>=3&order_rate<=50&remain_distance<=200&bashin_diff_infront<=1@order>=3&order_rate<=50&remain_distance<=200&bashin_diff_behind<=1", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Red-Ace -> Skill-detail(skill-id = 10091, name = "Red Ace", description = "Slightly swell with the determination to be number one when positioned toward the front in the second half of the race.", group = Just(Red-Ace), rarity = Unique-Low, group-rate = 1, grade-value = 240, wit-check = False, activations = [Activation(precondition = "", condition = "distance_rate>=50&order==1&bashin_diff_behind<=1@distance_rate>=50&order==2&is_overtake==1", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Accel(2000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Focused-Mind -> Skill-detail(skill-id = 10111, name = "Focused Mind", description = "Moderately increase velocity with a strong turn of foot when passing another runner toward the back on the final straight.", group = Just(Focused-Mind), rarity = Unique-Low, group-rate = 1, grade-value = 240, wit-check = False, activations = [Activation(precondition = "", condition = "is_finalcorner==1&corner==0&change_order_onetime<0&order>=3", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Corazon-Ardiente -> Skill-detail(skill-id = 10141, name = "Corazón ☆ Ardiente", description = "Slightly hang on to the advantage when positioned toward the front with energy to spare on the final straight.", group = Just(Corazon-Ardiente), rarity = Unique-Low, group-rate = 1, grade-value = 240, wit-check = False, activations = [Activation(precondition = "", condition = "is_finalcorner==1&corner==0&hp_per>=30&order<=2", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Accel(2000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Empresss-Pride -> Skill-detail(skill-id = 10181, name = "Empress's Pride", description = "Moderately increase velocity with the stride of an empress when passing another runner from midpack or further back on the final corner.", group = Just(Empresss-Pride), rarity = Unique-Low, group-rate = 1, grade-value = 240, wit-check = False, activations = [Activation(precondition = "", condition = "is_finalcorner==1&corner!=0&order>=3&change_order_onetime<0", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - First-Place-Kiss -> Skill-detail(skill-id = 10241, name = "1st Place Kiss☆", description = "Slightly increase ability to break out of the pack on the straight after engaging in a challenge toward the front on the final corner or later.", group = Just(First-Place-Kiss), rarity = Unique-Low, group-rate = 1, grade-value = 240, wit-check = False, activations = [Activation(precondition = "", condition = "is_finalcorner==1&blocked_side_continuetime>=2&order<=3", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Accel(2000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Feel-the-Burn -> Skill-detail(skill-id = 10271, name = "Feel the Burn!", description = "Moderately increase acceleration in an attempt to move up on a corner late-race.", group = Just(Feel-the-Burn), rarity = Unique-Low, group-rate = 1, grade-value = 240, wit-check = False, activations = [Activation(precondition = "", condition = "phase>=2&corner!=0&order_rate>=65&order_rate<=70", duration = 40000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(3000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20043) - Introduction-to-Physiology -> Skill-detail(skill-id = 10321, name = "Introduction to Physiology", description = "Moderately recover endurance and slightly increase velocity for a moderate duration when sitting off the pace on a corner in the second half of the race.", group = Just(Introduction-to-Physiology), rarity = Unique-Low, group-rate = 1, grade-value = 240, wit-check = False, activations = [Activation(precondition = "", condition = "distance_rate>=50&corner!=0&order>=3&order_rate<=40", duration = 40000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(350.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20023) - V-Is-for-Victory -> Skill-detail(skill-id = 10351, name = "V Is for Victory!", description = "Moderately increase velocity with winning ambition when positioned toward the front on the final straight after engaging in a challenge on the final corner or later.", group = Just(V-Is-for-Victory), rarity = Unique-Low, group-rate = 1, grade-value = 240, wit-check = False, activations = [Activation(precondition = "is_finalcorner==1&blocked_side_continuetime>=2", condition = "is_finalcorner==1&corner==0&order<=5", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Class-Rep-Speed-Bakushin -> Skill-detail(skill-id = 10411, name = "Class Rep + Speed = Bakushin", description = "Moderately increase velocity with BAKUSHIN power when engaged in a challenge toward the front in the second half of the race.", group = Just(Class-Rep-Speed-Bakushin), rarity = Unique-Low, group-rate = 1, grade-value = 240, wit-check = False, activations = [Activation(precondition = "", condition = "distance_rate>=50&order<=3&blocked_side_continuetime>=2", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Clear-Heart -> Skill-detail(skill-id = 10451, name = "Clear Heart", description = "Recover endurance when well-positioned mid-race.", group = Just(Clear-Heart), rarity = Unique-Low, group-rate = 1, grade-value = 240, wit-check = False, activations = [Activation(precondition = "", condition = "phase_random==1&order>=2&order_rate<=40", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(550.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20023) - Super-Duper-Stoked -> Skill-detail(skill-id = 10521, name = "Super-Duper Stoked", description = "Moderately recover endurance with a glance at nearby runners when positioned toward the back on the final corner.", group = Just(Super-Duper-Stoked), rarity = Unique-Low, group-rate = 1, grade-value = 240, wit-check = False, activations = [Activation(precondition = "", condition = "is_finalcorner==1&corner!=0&order_rate>50&near_count>=1", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(350.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20023) - Luck-Be-with-Me -> Skill-detail(skill-id = 10561, name = "Luck Be with Me!", description = "Moderately clear a path forward with the power of divination when the way ahead is jammed late-race.", group = Just(Luck-Be-with-Me), rarity = Unique-Low, group-rate = 1, grade-value = 240, wit-check = False, activations = [Activation(precondition = "", condition = "phase>=2&order>=3&blocked_front==1", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Accel(1000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - I-Can-Win-Sometimes-Right -> Skill-detail(skill-id = 10601, name = "I Can Win Sometimes, Right?", description = "Moderately increase velocity with an arousal of fighting spirit when positioned 3rd and about to lose late-race.", group = Just(I-Can-Win-Sometimes-Right), rarity = Unique-Low, group-rate = 1, grade-value = 240, wit-check = False, activations = [Activation(precondition = "", condition = "phase>=2&order==3&bashin_diff_behind<=1", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Call-Me-King -> Skill-detail(skill-id = 10611, name = "Call Me King", description = "Increase velocity in a true display of skill with 200m remaining after racing calmly.", group = Just(Call-Me-King), rarity = Unique-Low, group-rate = 1, grade-value = 240, wit-check = False, activations = [Activation(precondition = "", condition = "temptation_count==0&remain_distance<=201&remain_distance>=199&order>=4&order_rate<=70", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Shooting-Star -> Skill-detail(skill-id = 100011, name = "Shooting Star", description = "Ride the momentum to increase velocity and very slightly increase acceleration after passing another runner toward the front late-race.", group = Just(Shooting-Star), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "phase>=2&order>=1&order_rate<=50&change_order_onetime<0", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Accel(1000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - The-View-from-the-Lead-Is-Mine -> Skill-detail(skill-id = 100021, name = "The View from the Lead Is Mine!", description = "Increase velocity by drawing on all remaining strength when in the lead by a fair margin in the second half of the race.", group = Just(The-View-from-the-Lead-Is-Mine), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "distance_rate>=50&order==1&bashin_diff_behind>=1", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Sky-High-Teio-Step -> Skill-detail(skill-id = 100031, name = "Sky-High Teio Step", description = "Greatly increase velocity with flashy footwork when closing the gap to runners ahead on the final straight.", group = Just(Sky-High-Teio-Step), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "is_finalcorner==1&corner==0&order<=3&bashin_diff_infront<=1&is_overtake==1", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(4500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Red-Shift-LP1211-M -> Skill-detail(skill-id = 100041, name = "Red Shift/LP1211-M", description = "Increase acceleration by shifting gears when positioned toward the front on the final corner or later.", group = Just(Red-Shift-LP1211-M), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "is_finalcorner==1&order<=5&order_rate<=50", duration = 40000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(4000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20043) - Lights-of-Vaudeville -> Skill-detail(skill-id = 100051, name = "Lights of Vaudeville", description = "Greatly increase velocity with a dazzling display when just breaking out of the pack toward the front on the final straight.", group = Just(Lights-of-Vaudeville), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "is_finalcorner==1&corner==0&order_rate<=30&behind_near_lane_time_set1>=1", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(4500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Triumphant-Pulse -> Skill-detail(skill-id = 100061, name = "Triumphant Pulse", description = "Greatly increase ability to break out of the pack by opening up a path when positioned toward the front with 200m remaining.", group = Just(Triumphant-Pulse), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "order>=2&order<=5&order_rate<=50&remain_distance<=201&remain_distance>=199", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(4500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Anchors-Aweigh -> Skill-detail(skill-id = 100071, name = "Anchors Aweigh!", description = "Moderately increase velocity steadily with a long spurt starting halfway through the race.", group = Just(Anchors-Aweigh), rarity = Unique-Upgraded, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "distance_rate>=50&distance_rate<=60&order_rate>50", duration = 60000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Cut-and-Drive -> Skill-detail(skill-id = 100081, name = "Cut and Drive!", description = "Become stronger at challenging rivals and increase velocity when positioned toward the front with 200m or less remaining.", group = Just(Cut-and-Drive), rarity = Unique-Upgraded, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "order>=3&order_rate<=50&remain_distance<=200&bashin_diff_infront<=1@order>=3&order_rate<=50&remain_distance<=200&bashin_diff_behind<=1", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Resplendent-Red-Ace -> Skill-detail(skill-id = 100091, name = "Resplendent Red Ace", description = "Swell with the determination to be number one when positioned toward the front in the second half of the race.", group = Just(Resplendent-Red-Ace), rarity = Unique-Upgraded, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "distance_rate>=50&order==1&bashin_diff_behind<=1@distance_rate>=50&order==2&is_overtake==1", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Accel(3000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Shooting-for-Victory -> Skill-detail(skill-id = 100101, name = "Shooting for Victory!", description = "Increase acceleration with a pow, a wow, and a bang when well-positioned upon approaching the final straight.", group = Just(Shooting-for-Victory), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "is_finalcorner_laterhalf==1&corner!=0&order>=3&order_rate<=40", duration = 40000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(4000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20043) - Where-Theres-a-Will-Theres-a-Way -> Skill-detail(skill-id = 100111, name = "Where There's a Will, There's a Way", description = "Increase velocity with a strong turn of foot when passing another runner toward the back on the final straight.", group = Just(Where-Theres-a-Will-Theres-a-Way), rarity = Unique-Upgraded, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "is_finalcorner==1&corner==0&change_order_onetime<0&order>=3", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - You-and-Me-One-on-One -> Skill-detail(skill-id = 100121, name = "You and Me! One-on-One!", description = "Increase velocity on the final straight after passing another runner on the outside toward the back on the final corner or later.", group = Just(You-and-Me-One-on-One), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "is_finalcorner==1&is_behind_in==1&change_order_onetime<0&order_rate>=40", condition = "is_finalcorner==1&corner==0", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - The-Duty-of-Dignity-Calls -> Skill-detail(skill-id = 100131, name = "The Duty of Dignity Calls", description = "Increase velocity with the determination to not be overtaken when positioned toward the front on the final corner.", group = Just(The-Duty-of-Dignity-Calls), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "is_finalcorner==1&corner!=0&distance_diff_rate<=30", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Victoria-por-plancha -> Skill-detail(skill-id = 100141, name = "Victoria por plancha ☆", description = "Hang onto the advantage when positioned toward the front with energy to spare on the final straight.", group = Just(Victoria-por-plancha), rarity = Unique-Upgraded, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "is_finalcorner==1&corner==0&hp_per>=30&order<=2", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Accel(3000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - This-Dance-Is-for-Vittoria -> Skill-detail(skill-id = 100151, name = "This Dance Is for Vittoria!", description = "Increase velocity with royal brilliance when positioned toward the front and close to the runner ahead or behind on the final corner or later.", group = Just(This-Dance-Is-for-Vittoria), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "is_finalcorner==1&bashin_diff_behind<=1&order<=4@is_finalcorner==1&bashin_diff_infront<=1&order<=4", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Shadow-Break -> Skill-detail(skill-id = 100161, name = "Shadow Break", description = "Increase velocity with beastly strength when passing another runner on the outside on the final corner or later. If the skill user engaged in a challenge mid-race, greatly increase velocity instead.", group = Just(Shadow-Break), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "phase==1&blocked_side_continuetime>=2", condition = "is_finalcorner==1&order>=2&order_rate<=75&is_behind_in==1&change_order_onetime<0", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(4500.decimal(-4)), value-usage =Direct, target =Self),]),Activation(precondition = "", condition = "is_finalcorner==1&order>=2&order_rate<=75&is_behind_in==1&change_order_onetime<0", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Behold-Thine-Emperors-Divine-Might -> Skill-detail(skill-id = 100171, name = "Behold Thine Emperor's Divine Might", description = "Greatly increase velocity on the final straight after passing another runner 3 times late-race.", group = Just(Behold-Thine-Emperors-Divine-Might), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "is_finalcorner==1&change_order_up_end_after>=3&corner==0", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(4500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Blazing-Pride -> Skill-detail(skill-id = 100181, name = "Blazing Pride", description = "Increase velocity with the stride of an empress when passing another runner from midpack or further back on the final corner.", group = Just(Blazing-Pride), rarity = Unique-Upgraded, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "is_finalcorner==1&corner!=0&order>=3&change_order_onetime<0", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - OMG-The-Final-Sprint -> Skill-detail(skill-id = 100191, name = "OMG! (゚∀゚) The Final Sprint! ☆", description = "Increase velocity and navigation with the pure euphoria of being within breathing distance of precious waifus after passing another runner 2 times late-race.", group = Just(OMG-The-Final-Sprint), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "change_order_up_end_after>=2", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Lane-Speed(350.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Angling-and-Scheming -> Skill-detail(skill-id = 100201, name = "Angling and Scheming", description = "Increase acceleration at an opportune moment when in the lead on a corner late-race.", group = Just(Angling-and-Scheming), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "phase>=2&corner!=0&order==1", duration = 40000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(4000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20043) - White-Lightning-Comin-Through -> Skill-detail(skill-id = 100211, name = "White Lightning Comin' Through!", description = "Bolt down the track like lightning when well-positioned or aiming for the front from midpack on a straight in the second half of the race.", group = Just(White-Lightning-Comin-Through), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "distance_rate>=50&corner==0&order_rate>=70&order_rate<=75&is_overtake==1@distance_rate>=50&corner==0&order_rate<=30&order_rate>=20", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Accel(1000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Fairy-Tale -> Skill-detail(skill-id = 100221, name = "Fairy Tale", description = "Increase velocity with the excitement of running when engaged in a challenge while well-positioned in the second half of the race.", group = Just(Fairy-Tale), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "distance_rate>=50&order>=2&order_rate<=40&blocked_side_continuetime>=2", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Win-QED -> Skill-detail(skill-id = 100231, name = "∴win Q.E.D.", description = "Increase velocity by deriving the winning equation when passing another runner toward the front on the final corner or later.", group = Just(Win-QED), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "is_finalcorner==1&change_order_onetime<0&order<=4", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Flashy-Landing -> Skill-detail(skill-id = 100241, name = "Flashy☆Landing", description = "Increase ability to break out of the pack on the straight after engaging in a challenge toward the front on the final corner or later.", group = Just(Flashy-Landing), rarity = Unique-Upgraded, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "is_finalcorner==1&blocked_side_continuetime>=2&order<=3", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Accel(3000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Chasing-After-You -> Skill-detail(skill-id = 100251, name = "Chasing After You", description = "Chase after an unseen friend when in midpack in the second half of the race, moderately increasing velocity steadily and very slightly intimidating runners ahead.", group = Just(Chasing-After-You), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "distance_rate>=50&order_rate>=40&order_rate<=70", duration = 60000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Current-Speed(-500.decimal(-4)), value-usage =Direct, target =Ahead(5)),]),], sp-cost = 0, icon-id = 20013) - G00-First-FInfinity -> Skill-detail(skill-id = 100261, name = "G00 1st. F∞;", description = "Increase velocity when positioned toward the front after making it to the final straight without faltering.", group = Just(G00-First-FInfinity), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "is_badstart==0&temptation_count==0&order<=3&is_finalcorner==1&corner==0", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Lets-Pump-Some-Iron -> Skill-detail(skill-id = 100271, name = "Let's Pump Some Iron!", description = "Increase acceleration in an attempt to move up on a corner late-race.", group = Just(Lets-Pump-Some-Iron), rarity = Unique-Upgraded, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "phase>=2&corner!=0&order_rate>=65&order_rate<=70", duration = 40000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(4000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20043) - YUMMY-SPEED -> Skill-detail(skill-id = 100281, name = "YUMMY☆SPEED!", description = "Kick forward hard with renewed vigor when starting to get tired while well-positioned halfway through the race.", group = Just(YUMMY-SPEED), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "distance_rate>=45&distance_rate<=60&order>=3&order_rate<=50&hp_per<=70", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Accel(3000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Blue-Rose-Closer -> Skill-detail(skill-id = 100301, name = "Blue Rose Closer", description = "Increase velocity with strong willpower on the final straight after passing another runner in the front part of the pack on the final corner or later.", group = Just(Blue-Rose-Closer), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "is_finalcorner==1&order<=4&change_order_onetime<0", condition = "is_finalcorner==1&corner==0", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - U-ma2 -> Skill-detail(skill-id = 100321, name = "U=ma2", description = "Recover endurance and moderately increase velocity for a moderate duration when sitting off the pace on a corner in the second half of the race.", group = Just(U-ma2), rarity = Unique-Upgraded, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "distance_rate>=50&corner!=0&order>=3&order_rate<=40", duration = 40000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(550.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20023) - Our-Ticket-to-Win -> Skill-detail(skill-id = 100351, name = "Our Ticket to Win!", description = "Increase velocity with winning ambition when positioned toward the front on the final straight after engaging in a challenge on the final corner or later.", group = Just(Our-Ticket-to-Win), rarity = Unique-Upgraded, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "is_finalcorner==1&blocked_side_continuetime>=2", condition = "is_finalcorner==1&corner==0&order<=5", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Schwarzes-Schwert -> Skill-detail(skill-id = 100371, name = "Schwarzes Schwert", description = "Increase velocity in a dash for the lead after running calmly and according to plan up until the final straight.", group = Just(Schwarzes-Schwert), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "is_badstart==0&temptation_count==0&order>=3&is_finalcorner==1&corner==0", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - LookatCurren -> Skill-detail(skill-id = 100381, name = "#LookatCurren", description = "Gain momentum and begin to advance when passing another runner while well-positioned around halfway through the race.", group = Just(LookatCurren), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "distance_rate>=50&distance_rate<=65&order>=2&order_rate<=40&change_order_onetime<0", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Accel(3000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - A-Princess-Must-Seize-Victory -> Skill-detail(skill-id = 100391, name = "A Princess Must Seize Victory!", description = "Increase velocity with pretty princess power when engaged in a challenge on the final straight.", group = Just(A-Princess-Must-Seize-Victory), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "is_finalcorner==1&corner==0&blocked_side_continuetime>=2", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - KEEP-IT-REAL -> Skill-detail(skill-id = 100401, name = "KEEP IT REAL.", description = "Moderately increase acceleration steadily with a wink when starting to make a move from midpack in the second half of the race.", group = Just(KEEP-IT-REAL), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "distance_rate>=50&order_rate>=40&order_rate<=70&is_overtake==1", duration = 60000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(3000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20043) - Genius-x-Bakushin-Victory -> Skill-detail(skill-id = 100411, name = "Genius x Bakushin = Victory", description = "Increase velocity with BAKUSHIN power when engaged in a challenge toward the front in the second half of the race.", group = Just(Genius-x-Bakushin-Victory), rarity = Unique-Upgraded, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "distance_rate>=50&order<=3&blocked_side_continuetime>=2", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Pure-Heart -> Skill-detail(skill-id = 100451, name = "Pure Heart", description = "Greatly recover endurance when well-positioned mid-race.", group = Just(Pure-Heart), rarity = Unique-Upgraded, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "phase_random==1&order>=2&order_rate<=40", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(750.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20023) - SPARKLY-STARDOM -> Skill-detail(skill-id = 100461, name = "SPARKLY☆STARDOM", description = "Become empowered to keep the spotlight when positioned toward the front and close to the runner behind on a straight mid-race.", group = Just(SPARKLY-STARDOM), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "phase==1&corner==0&order<=2&bashin_diff_behind<=1", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Accel(3000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Pop-and-Polish -> Skill-detail(skill-id = 100481, name = "Pop & Polish", description = "Get hyped and increase velocity when pressured by or passing another runner while well-positioned on the final straight.", group = Just(Pop-and-Polish), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "is_finalcorner==1&corner==0&order>=2&order_rate<=30&overtake_target_time>=2@is_finalcorner==1&corner==0&order_rate<=20&change_order_onetime<0", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Nemesis -> Skill-detail(skill-id = 100501, name = "Nemesis", description = "Increase velocity with smoldering ambition when moving up from midpack on the final corner or later.", group = Just(Nemesis), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "is_finalcorner==1&order_rate>=40&order_rate<=75&is_overtake==1", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Super-Duper-Climax -> Skill-detail(skill-id = 100521, name = "Super-Duper Climax", description = "Recover endurance with a glance at nearby runners when positioned toward the back on the final corner.", group = Just(Super-Duper-Climax), rarity = Unique-Upgraded, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "is_finalcorner==1&corner!=0&order_rate>50&near_count>=1", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(550.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20023) - I-See-Victory-in-My-Future -> Skill-detail(skill-id = 100561, name = "I See Victory in My Future!", description = "Clear a path forward with the power of divination when the way ahead is jammed late-race.", group = Just(I-See-Victory-in-My-Future), rarity = Unique-Upgraded, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "phase>=2&order>=3&blocked_front==1", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Accel(1000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - I-Never-Goof-Up -> Skill-detail(skill-id = 100581, name = "I Never Goof Up!", description = "Aim for the front with unwavering determination when passing another runner from midpack or further back on a corner late-race.", group = Just(I-Never-Goof-Up), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "phase>=2&corner!=0&order>=3&change_order_onetime<0", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Accel(3000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Moving-Past-and-Beyond -> Skill-detail(skill-id = 100591, name = "Moving Past, and Beyond", description = "Having run the race calmly, increase acceleration with hardened determination when making a move mid-race, or on a crucial corner late-race whilst in midpack.", group = Just(Moving-Past-and-Beyond), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "phase>=2&corner!=0&is_finalcorner==0&temptation_count==0&order_rate>=50&order_rate<=70@phase==1&corner!=0&is_finalcorner==1&temptation_count==0&order_rate>=50&order_rate<=70", duration = 40000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(4000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20043) - Just-a-Little-Farther -> Skill-detail(skill-id = 100601, name = "Just a Little Farther!", description = "Increase velocity with flaring fighting spirit when positioned 3rd and about to lose late-race.", group = Just(Just-a-Little-Farther), rarity = Unique-Upgraded, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "phase>=2&order==3&bashin_diff_behind<=1", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Prideful-King -> Skill-detail(skill-id = 100611, name = "Prideful King", description = "Greatly increase velocity in a true display of skill with 200m remaining after racing calmly.", group = Just(Prideful-King), rarity = Unique-Upgraded, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "temptation_count==0&remain_distance<=201&remain_distance>=199&order>=4&order_rate<=70", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(4500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Dazzl-n-Diver -> Skill-detail(skill-id = 110011, name = "Dazzl'n ♪ Diver", description = "Recover endurance by relaxing after activating 2 skills when positioned midpack mid-race.", group = Just(Dazzl-n-Diver), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "phase==1&order>=2&order_rate<=70&activate_count_middle>=2", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(550.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20023) - Certain-Victory -> Skill-detail(skill-id = 110031, name = "Certain Victory", description = "Greatly increase velocity with an indomitable fighting spirit on the final straight after being on the heels of another runner toward the front on the final corner or later.", group = Just(Certain-Victory), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "is_finalcorner==1&is_overtake==1&order<=5&order_rate<=50&overtake_target_no_order_up_time>=2", condition = "is_finalcorner==1&corner==0", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(4500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - A-Kiss-for-Courage -> Skill-detail(skill-id = 110041, name = "A Kiss for Courage", description = "Increase velocity enthusiastically when positioned toward the front in the second half of the race after recovering endurance with a skill.", group = Just(A-Kiss-for-Courage), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "distance_rate>=50&activate_count_heal>=1&order<=3", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Festive-Miracle -> Skill-detail(skill-id = 110061, name = "Festive Miracle", description = "Control breathing and kick forward hard toward victory in the second half of the race after recovering endurance with skills at least 3 times.", group = Just(Festive-Miracle), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "activate_count_heal>=3&distance_rate>=50", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Accel(3000.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =HP(350.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Superior-Heal -> Skill-detail(skill-id = 110111, name = "Superior Heal", description = "Greatly recover endurance with a gentle light when overtaken toward the back mid-race.", group = Just(Superior-Heal), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "phase==1&change_order_onetime>0&order_rate>=40", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(750.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20023) - Legacy-of-the-Strong -> Skill-detail(skill-id = 110131, name = "Legacy of the Strong", description = "Increase velocity continuously when pressured by another runner and running out of energy toward the front on the final corner or later.", group = Just(Legacy-of-the-Strong), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "is_finalcorner==1&hp_per<=45&order<=3&order_rate<=50&bashin_diff_behind<=1&overtake_target_time>=1", duration = 60000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Condors-Fury -> Skill-detail(skill-id = 110141, name = "Condor's Fury", description = "Increase acceleration with blazing passion when aiming for the front from midpack on the final corner.", group = Just(Condors-Fury), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "is_finalcorner==1&corner!=0&is_overtake==1&order>=4&order_rate<=75", duration = 40000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(4000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20043) - Arrows-Whistle-Shadows-Disperse -> Skill-detail(skill-id = 110171, name = "Arrows Whistle, Shadows Disperse", description = "Increase velocity with a blazing spirit when pressured by another runner in the front part of the pack on the final corner or later.", group = Just(Arrows-Whistle-Shadows-Disperse), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "is_finalcorner==1&order_rate<=40&overtake_target_time>=2", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Eternal-Moments -> Skill-detail(skill-id = 110181, name = "Eternal Moments", description = "Increase velocity when starting to make a move from a position toward the front mid-race.", group = Just(Eternal-Moments), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "phase==1&order>=3&order_rate<=50&is_overtake==1", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Presents-from-X -> Skill-detail(skill-id = 110231, name = "Presents from X", description = "Increase velocity by deriving a path to victory mid-race after staying well-positioned from the start of the race up until the second half.", group = Just(Presents-from-X), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "order_rate_in40_continue==1&phase==1&distance_rate>=50&order>=2&order_rate<=40", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Flowery-Maneuver -> Skill-detail(skill-id = 110241, name = "Flowery☆Maneuver", description = "Increase velocity when passing another runner toward the front on the final corner. If passing toward the back, increase acceleration instead.", group = Just(Flowery-Maneuver), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "is_finalcorner==1&corner!=0&order_rate<=40&change_order_onetime<0", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),Activation(precondition = "", condition = "is_finalcorner==1&corner!=0&order_rate>=50&order_rate<=80&change_order_onetime<0", duration = 40000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(4000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Every-Rose-Has-Its-Fangs -> Skill-detail(skill-id = 110301, name = "Every Rose Has Its Fangs", description = "Suck endurance from runners ahead when well-positioned and pressured by another runner mid-race.", group = Just(Every-Rose-Has-Its-Fangs), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "phase==1&order>=2&order_rate<=50&overtake_target_time>=1", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(550.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =HP(-50.decimal(-4)), value-usage =Direct, target =Ahead(18)),]),], sp-cost = 0, icon-id = 20023) - Dancing-in-the-Leaves -> Skill-detail(skill-id = 110401, name = "Dancing in the Leaves", description = "Increase ability to break out of the pack when engaged in a challenge in midpack on the final corner.", group = Just(Dancing-in-the-Leaves), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "is_finalcorner==1&corner!=0&order_rate>=30&order_rate<=70&blocked_side_continuetime>=2", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Accel(3000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Give-Mummy-a-Hug -> Skill-detail(skill-id = 110451, name = "Give Mummy a Hug ♡", description = "Increase ability to break out of the pack when well-positioned and close to the runner ahead on the final straight.", group = Just(Give-Mummy-a-Hug), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "is_finalcorner==1&corner==0&order<=4&bashin_diff_infront<=1", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Accel(3000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Bountiful-Harvest -> Skill-detail(skill-id = 110561, name = "Bountiful Harvest", description = "Increase velocity with a surge of great fortune when pressured by another runner toward the back in the second half of the race.", group = Just(Bountiful-Harvest), rarity = Unique, group-rate = 1, grade-value = 340, wit-check = False, activations = [Activation(precondition = "", condition = "distance_rate>=50&order_rate>=40&overtake_target_time>=2", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20013) - Right-Handed-Lv2 -> Skill-detail(skill-id = 200011, name = "Right-Handed ◎", description = "Increase performance on right-handed tracks.", group = Just(Right-Handed), rarity = Common, group-rate = 2, grade-value = 174, wit-check = False, activations = [Activation(precondition = "", condition = "rotation==1", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Speed(600000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 10011) - Right-Handed -> Skill-detail(skill-id = 200012, name = "Right-Handed ○", description = "Moderately increase performance on right-handed tracks.", group = Just(Right-Handed), rarity = Common, group-rate = 1, grade-value = 129, wit-check = False, activations = [Activation(precondition = "", condition = "rotation==1", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Speed(400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 90, icon-id = 10011) - Right-Handed-x -> Skill-detail(skill-id = 200013, name = "Right-Handed ×", description = "Moderately decrease performance on right-handed tracks.", group = Just(Right-Handed), rarity = Common, group-rate = -1, grade-value = -129, wit-check = False, activations = [Activation(precondition = "", condition = "rotation==1", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Speed(-400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 50, icon-id = 10014) - Left-Handed-Lv2 -> Skill-detail(skill-id = 200021, name = "Left-Handed ◎", description = "Increase performance on left-handed tracks.", group = Just(Left-Handed), rarity = Common, group-rate = 2, grade-value = 174, wit-check = False, activations = [Activation(precondition = "", condition = "rotation==2", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Speed(600000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 10011) - Left-Handed -> Skill-detail(skill-id = 200022, name = "Left-Handed ○", description = "Moderately increase performance on left-handed tracks.", group = Just(Left-Handed), rarity = Common, group-rate = 1, grade-value = 129, wit-check = False, activations = [Activation(precondition = "", condition = "rotation==2", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Speed(400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 90, icon-id = 10011) - Left-Handed-x -> Skill-detail(skill-id = 200023, name = "Left-Handed ×", description = "Moderately decrease performance on left-handed tracks.", group = Just(Left-Handed), rarity = Common, group-rate = -1, grade-value = -129, wit-check = False, activations = [Activation(precondition = "", condition = "rotation==2", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Speed(-400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 50, icon-id = 10014) - Tokyo-Racecourse-Lv2 -> Skill-detail(skill-id = 200031, name = "Tokyo Racecourse ◎", description = "Increase performance at Tokyo Racecourse.", group = Just(Tokyo-Racecourse), rarity = Common, group-rate = 2, grade-value = 174, wit-check = False, activations = [Activation(precondition = "", condition = "track_id==10006", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Stamina(600000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 10021) - Tokyo-Racecourse -> Skill-detail(skill-id = 200032, name = "Tokyo Racecourse ○", description = "Moderately increase performance at Tokyo Racecourse.", group = Just(Tokyo-Racecourse), rarity = Common, group-rate = 1, grade-value = 129, wit-check = False, activations = [Activation(precondition = "", condition = "track_id==10006", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Stamina(400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 90, icon-id = 10021) - Tokyo-Racecourse-x -> Skill-detail(skill-id = 200033, name = "Tokyo Racecourse ×", description = "Moderately decrease performance at Tokyo Racecourse.", group = Just(Tokyo-Racecourse), rarity = Common, group-rate = -1, grade-value = -129, wit-check = False, activations = [Activation(precondition = "", condition = "track_id==10006", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Stamina(-400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 50, icon-id = 10024) - Nakayama-Racecourse-Lv2 -> Skill-detail(skill-id = 200041, name = "Nakayama Racecourse ◎", description = "Increase performance at Nakayama Racecourse.", group = Just(Nakayama-Racecourse), rarity = Common, group-rate = 2, grade-value = 174, wit-check = False, activations = [Activation(precondition = "", condition = "track_id==10005", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Stamina(600000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 10021) - Nakayama-Racecourse -> Skill-detail(skill-id = 200042, name = "Nakayama Racecourse ○", description = "Moderately increase performance at Nakayama Racecourse.", group = Just(Nakayama-Racecourse), rarity = Common, group-rate = 1, grade-value = 129, wit-check = False, activations = [Activation(precondition = "", condition = "track_id==10005", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Stamina(400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 90, icon-id = 10021) - Nakayama-Racecourse-x -> Skill-detail(skill-id = 200043, name = "Nakayama Racecourse ×", description = "Moderately decrease performance at Nakayama Racecourse.", group = Just(Nakayama-Racecourse), rarity = Common, group-rate = -1, grade-value = -129, wit-check = False, activations = [Activation(precondition = "", condition = "track_id==10005", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Stamina(-400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 50, icon-id = 10024) - Hanshin-Racecourse-Lv2 -> Skill-detail(skill-id = 200051, name = "Hanshin Racecourse ◎", description = "Increase performance at Hanshin Racecourse.", group = Just(Hanshin-Racecourse), rarity = Common, group-rate = 2, grade-value = 174, wit-check = False, activations = [Activation(precondition = "", condition = "track_id==10009", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Stamina(600000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 10021) - Hanshin-Racecourse -> Skill-detail(skill-id = 200052, name = "Hanshin Racecourse ○", description = "Moderately increase performance at Hanshin Racecourse.", group = Just(Hanshin-Racecourse), rarity = Common, group-rate = 1, grade-value = 129, wit-check = False, activations = [Activation(precondition = "", condition = "track_id==10009", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Stamina(400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 90, icon-id = 10021) - Hanshin-Racecourse-x -> Skill-detail(skill-id = 200053, name = "Hanshin Racecourse ×", description = "Moderately decrease performance at Hanshin Racecourse.", group = Just(Hanshin-Racecourse), rarity = Common, group-rate = -1, grade-value = -129, wit-check = False, activations = [Activation(precondition = "", condition = "track_id==10009", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Stamina(-400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 50, icon-id = 10024) - Kyoto-Racecourse-Lv2 -> Skill-detail(skill-id = 200061, name = "Kyoto Racecourse ◎", description = "Increase performance at Kyoto Racecourse.", group = Just(Kyoto-Racecourse), rarity = Common, group-rate = 2, grade-value = 174, wit-check = False, activations = [Activation(precondition = "", condition = "track_id==10008", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Stamina(600000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 10021) - Kyoto-Racecourse -> Skill-detail(skill-id = 200062, name = "Kyoto Racecourse ○", description = "Moderately increase performance at Kyoto Racecourse.", group = Just(Kyoto-Racecourse), rarity = Common, group-rate = 1, grade-value = 129, wit-check = False, activations = [Activation(precondition = "", condition = "track_id==10008", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Stamina(400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 90, icon-id = 10021) - Kyoto-Racecourse-x -> Skill-detail(skill-id = 200063, name = "Kyoto Racecourse ×", description = "Moderately decrease performance at Kyoto Racecourse.", group = Just(Kyoto-Racecourse), rarity = Common, group-rate = -1, grade-value = -129, wit-check = False, activations = [Activation(precondition = "", condition = "track_id==10008", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Stamina(-400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 50, icon-id = 10024) - Yodo-Invicta -> Skill-detail(skill-id = 200064, name = "Yodo Invicta", description = "Increase performance at Kyoto Racecourse, boosting Stamina and Wit.", group = Just(Kyoto-Racecourse), rarity = Rare, group-rate = 3, grade-value = 461, wit-check = False, activations = [Activation(precondition = "", condition = "track_id==10008", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Stamina(600000.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Passive-Wit(600000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 130, icon-id = 10022) - Chukyo-Racecourse-Lv2 -> Skill-detail(skill-id = 200071, name = "Chukyo Racecourse ◎", description = "Increase performance at Chukyo Racecourse.", group = Just(Chukyo-Racecourse), rarity = Common, group-rate = 2, grade-value = 174, wit-check = False, activations = [Activation(precondition = "", condition = "track_id==10007", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Stamina(600000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 10021) - Chukyo-Racecourse -> Skill-detail(skill-id = 200072, name = "Chukyo Racecourse ○", description = "Moderately increase performance at Chukyo Racecourse.", group = Just(Chukyo-Racecourse), rarity = Common, group-rate = 1, grade-value = 129, wit-check = False, activations = [Activation(precondition = "", condition = "track_id==10007", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Stamina(400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 90, icon-id = 10021) - Chukyo-Racecourse-x -> Skill-detail(skill-id = 200073, name = "Chukyo Racecourse ×", description = "Moderately decrease performance at Chukyo Racecourse.", group = Just(Chukyo-Racecourse), rarity = Common, group-rate = -1, grade-value = -129, wit-check = False, activations = [Activation(precondition = "", condition = "track_id==10007", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Stamina(-400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 50, icon-id = 10024) - Sapporo-Racecourse-Lv2 -> Skill-detail(skill-id = 200081, name = "Sapporo Racecourse ◎", description = "Increase performance at Sapporo Racecourse.", group = Just(Sapporo-Racecourse), rarity = Common, group-rate = 2, grade-value = 174, wit-check = False, activations = [Activation(precondition = "", condition = "track_id==10001", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Stamina(600000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 90, icon-id = 10021) - Sapporo-Racecourse -> Skill-detail(skill-id = 200082, name = "Sapporo Racecourse ○", description = "Moderately increase performance at Sapporo Racecourse.", group = Just(Sapporo-Racecourse), rarity = Common, group-rate = 1, grade-value = 129, wit-check = False, activations = [Activation(precondition = "", condition = "track_id==10001", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Stamina(400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 70, icon-id = 10021) - Sapporo-Racecourse-x -> Skill-detail(skill-id = 200083, name = "Sapporo Racecourse ×", description = "Moderately decrease performance at Sapporo Racecourse.", group = Just(Sapporo-Racecourse), rarity = Common, group-rate = -1, grade-value = -129, wit-check = False, activations = [Activation(precondition = "", condition = "track_id==10001", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Stamina(-400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 40, icon-id = 10024) - Hakodate-Racecourse-Lv2 -> Skill-detail(skill-id = 200091, name = "Hakodate Racecourse ◎", description = "Increase performance at Hakodate Racecourse.", group = Just(Hakodate-Racecourse), rarity = Common, group-rate = 2, grade-value = 174, wit-check = False, activations = [Activation(precondition = "", condition = "track_id==10002", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Stamina(600000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 90, icon-id = 10021) - Hakodate-Racecourse -> Skill-detail(skill-id = 200092, name = "Hakodate Racecourse ○", description = "Moderately increase performance at Hakodate Racecourse.", group = Just(Hakodate-Racecourse), rarity = Common, group-rate = 1, grade-value = 129, wit-check = False, activations = [Activation(precondition = "", condition = "track_id==10002", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Stamina(400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 70, icon-id = 10021) - Hakodate-Racecourse-x -> Skill-detail(skill-id = 200093, name = "Hakodate Racecourse ×", description = "Moderately decrease performance at Hakodate Racecourse.", group = Just(Hakodate-Racecourse), rarity = Common, group-rate = -1, grade-value = -129, wit-check = False, activations = [Activation(precondition = "", condition = "track_id==10002", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Stamina(-400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 40, icon-id = 10024) - Fukushima-Racecourse-Lv2 -> Skill-detail(skill-id = 200101, name = "Fukushima Racecourse ◎", description = "Increase performance at Fukushima Racecourse.", group = Just(Fukushima-Racecourse), rarity = Common, group-rate = 2, grade-value = 174, wit-check = False, activations = [Activation(precondition = "", condition = "track_id==10004", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Stamina(600000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 90, icon-id = 10021) - Fukushima-Racecourse -> Skill-detail(skill-id = 200102, name = "Fukushima Racecourse ○", description = "Moderately increase performance at Fukushima Racecourse.", group = Just(Fukushima-Racecourse), rarity = Common, group-rate = 1, grade-value = 129, wit-check = False, activations = [Activation(precondition = "", condition = "track_id==10004", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Stamina(400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 70, icon-id = 10021) - Fukushima-Racecourse-x -> Skill-detail(skill-id = 200103, name = "Fukushima Racecourse ×", description = "Moderately decrease performance at Fukushima Racecourse.", group = Just(Fukushima-Racecourse), rarity = Common, group-rate = -1, grade-value = -129, wit-check = False, activations = [Activation(precondition = "", condition = "track_id==10004", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Stamina(-400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 40, icon-id = 10024) - Niigata-Racecourse-Lv2 -> Skill-detail(skill-id = 200111, name = "Niigata Racecourse ◎", description = "Increase performance at Niigata Racecourse.", group = Just(Niigata-Racecourse), rarity = Common, group-rate = 2, grade-value = 174, wit-check = False, activations = [Activation(precondition = "", condition = "track_id==10003", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Stamina(600000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 90, icon-id = 10021) - Niigata-Racecourse -> Skill-detail(skill-id = 200112, name = "Niigata Racecourse ○", description = "Moderately increase performance at Niigata Racecourse.", group = Just(Niigata-Racecourse), rarity = Common, group-rate = 1, grade-value = 129, wit-check = False, activations = [Activation(precondition = "", condition = "track_id==10003", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Stamina(400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 70, icon-id = 10021) - Niigata-Racecourse-x -> Skill-detail(skill-id = 200113, name = "Niigata Racecourse ×", description = "Moderately decrease performance at Niigata Racecourse.", group = Just(Niigata-Racecourse), rarity = Common, group-rate = -1, grade-value = -129, wit-check = False, activations = [Activation(precondition = "", condition = "track_id==10003", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Stamina(-400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 40, icon-id = 10024) - Kokura-Racecourse-Lv2 -> Skill-detail(skill-id = 200121, name = "Kokura Racecourse ◎", description = "Increase performance at Kokura Racecourse.", group = Just(Kokura-Racecourse), rarity = Common, group-rate = 2, grade-value = 174, wit-check = False, activations = [Activation(precondition = "", condition = "track_id==10010", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Stamina(600000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 90, icon-id = 10021) - Kokura-Racecourse -> Skill-detail(skill-id = 200122, name = "Kokura Racecourse ○", description = "Moderately increase performance at Kokura Racecourse.", group = Just(Kokura-Racecourse), rarity = Common, group-rate = 1, grade-value = 129, wit-check = False, activations = [Activation(precondition = "", condition = "track_id==10010", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Stamina(400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 70, icon-id = 10021) - Kokura-Racecourse-x -> Skill-detail(skill-id = 200123, name = "Kokura Racecourse ×", description = "Moderately decrease performance at Kokura Racecourse.", group = Just(Kokura-Racecourse), rarity = Common, group-rate = -1, grade-value = -129, wit-check = False, activations = [Activation(precondition = "", condition = "track_id==10010", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Stamina(-400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 40, icon-id = 10024) - Standard-Distance-Lv2 -> Skill-detail(skill-id = 200131, name = "Standard Distance ◎", description = "Increase performance over standard distances (multiples of 400m).", group = Just(Standard-Distance), rarity = Common, group-rate = 2, grade-value = 174, wit-check = False, activations = [Activation(precondition = "", condition = "is_basis_distance==1", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Stamina(600000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 10021) - Standard-Distance -> Skill-detail(skill-id = 200132, name = "Standard Distance ○", description = "Moderately increase performance over standard distances (multiples of 400m).", group = Just(Standard-Distance), rarity = Common, group-rate = 1, grade-value = 129, wit-check = False, activations = [Activation(precondition = "", condition = "is_basis_distance==1", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Stamina(400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 90, icon-id = 10021) - Standard-Distance-x -> Skill-detail(skill-id = 200133, name = "Standard Distance ×", description = "Moderately decrease performance over standard distances (multiples of 400m).", group = Just(Standard-Distance), rarity = Common, group-rate = -1, grade-value = -129, wit-check = False, activations = [Activation(precondition = "", condition = "is_basis_distance==1", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Stamina(-400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 50, icon-id = 10024) - Non-Standard-Distance-Lv2 -> Skill-detail(skill-id = 200141, name = "Non-Standard Distance ◎", description = "Increase performance over non-standard distances (non-multiples of 400m).", group = Just(Non-Standard-Distance), rarity = Common, group-rate = 2, grade-value = 174, wit-check = False, activations = [Activation(precondition = "", condition = "is_basis_distance==0", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Stamina(600000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 10021) - Non-Standard-Distance -> Skill-detail(skill-id = 200142, name = "Non-Standard Distance ○", description = "Moderately increase performance over non-standard distances (non-multiples of 400m).", group = Just(Non-Standard-Distance), rarity = Common, group-rate = 1, grade-value = 129, wit-check = False, activations = [Activation(precondition = "", condition = "is_basis_distance==0", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Stamina(400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 90, icon-id = 10021) - Non-Standard-Distance-x -> Skill-detail(skill-id = 200143, name = "Non-Standard Distance ×", description = "Moderately decrease performance over non-standard distances (non-multiples of 400m).", group = Just(Non-Standard-Distance), rarity = Common, group-rate = -1, grade-value = -129, wit-check = False, activations = [Activation(precondition = "", condition = "is_basis_distance==0", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Stamina(-400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 50, icon-id = 10024) - Firm-Conditions-Lv2 -> Skill-detail(skill-id = 200151, name = "Firm Conditions ◎", description = "Increase performance on firm ground.", group = Just(Firm-Conditions), rarity = Common, group-rate = 2, grade-value = 174, wit-check = False, activations = [Activation(precondition = "", condition = "ground_condition==1", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Power(600000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 10031) - Firm-Conditions -> Skill-detail(skill-id = 200152, name = "Firm Conditions ○", description = "Moderately increase performance on firm ground.", group = Just(Firm-Conditions), rarity = Common, group-rate = 1, grade-value = 129, wit-check = False, activations = [Activation(precondition = "", condition = "ground_condition==1", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Power(400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 90, icon-id = 10031) - Firm-Conditions-x -> Skill-detail(skill-id = 200153, name = "Firm Conditions ×", description = "Moderately decrease performance on firm ground.", group = Just(Firm-Conditions), rarity = Common, group-rate = -1, grade-value = -129, wit-check = False, activations = [Activation(precondition = "", condition = "ground_condition==1", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Power(-400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 50, icon-id = 10034) - Wet-Conditions-Lv2 -> Skill-detail(skill-id = 200161, name = "Wet Conditions ◎", description = "Increase performance on good, soft, and heavy ground.", group = Just(Wet-Conditions), rarity = Common, group-rate = 2, grade-value = 174, wit-check = False, activations = [Activation(precondition = "", condition = "ground_condition==2@ground_condition==3@ground_condition==4", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Power(600000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 10031) - Wet-Conditions -> Skill-detail(skill-id = 200162, name = "Wet Conditions ○", description = "Moderately increase performance on good, soft, and heavy ground.", group = Just(Wet-Conditions), rarity = Common, group-rate = 1, grade-value = 129, wit-check = False, activations = [Activation(precondition = "", condition = "ground_condition==2@ground_condition==3@ground_condition==4", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Power(400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 90, icon-id = 10031) - Wet-Conditions-x -> Skill-detail(skill-id = 200163, name = "Wet Conditions ×", description = "Moderately decrease performance on good, soft, and heavy ground.", group = Just(Wet-Conditions), rarity = Common, group-rate = -1, grade-value = -129, wit-check = False, activations = [Activation(precondition = "", condition = "ground_condition==2@ground_condition==3@ground_condition==4", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Power(-400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 50, icon-id = 10034) - Spring-Runner-Lv2 -> Skill-detail(skill-id = 200171, name = "Spring Runner ◎", description = "Increase performance in spring.", group = Just(Spring-Runner), rarity = Common, group-rate = 2, grade-value = 174, wit-check = False, activations = [Activation(precondition = "", condition = "season==1@season==5", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Speed(600000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 10011) - Spring-Runner -> Skill-detail(skill-id = 200172, name = "Spring Runner ○", description = "Moderately increase performance in spring.", group = Just(Spring-Runner), rarity = Common, group-rate = 1, grade-value = 129, wit-check = False, activations = [Activation(precondition = "", condition = "season==1@season==5", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Speed(400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 90, icon-id = 10011) - Spring-Runner-x -> Skill-detail(skill-id = 200173, name = "Spring Runner ×", description = "Moderately decrease performance in spring.", group = Just(Spring-Runner), rarity = Common, group-rate = -1, grade-value = -129, wit-check = False, activations = [Activation(precondition = "", condition = "season==1@season==5", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Speed(-400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 50, icon-id = 10014) - Summer-Runner-Lv2 -> Skill-detail(skill-id = 200181, name = "Summer Runner ◎", description = "Increase performance in summer.", group = Just(Summer-Runner), rarity = Common, group-rate = 2, grade-value = 174, wit-check = False, activations = [Activation(precondition = "", condition = "season==2", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Speed(600000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 10011) - Summer-Runner -> Skill-detail(skill-id = 200182, name = "Summer Runner ○", description = "Moderately increase performance in summer.", group = Just(Summer-Runner), rarity = Common, group-rate = 1, grade-value = 129, wit-check = False, activations = [Activation(precondition = "", condition = "season==2", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Speed(400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 90, icon-id = 10011) - Summer-Runner-x -> Skill-detail(skill-id = 200183, name = "Summer Runner ×", description = "Moderately decrease performance in summer.", group = Just(Summer-Runner), rarity = Common, group-rate = -1, grade-value = -129, wit-check = False, activations = [Activation(precondition = "", condition = "season==2", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Speed(-400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 50, icon-id = 10014) - Fall-Runner-Lv2 -> Skill-detail(skill-id = 200191, name = "Fall Runner ◎", description = "Increase performance in fall.", group = Just(Fall-Runner), rarity = Common, group-rate = 2, grade-value = 174, wit-check = False, activations = [Activation(precondition = "", condition = "season==3", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Speed(600000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 10011) - Fall-Runner -> Skill-detail(skill-id = 200192, name = "Fall Runner ○", description = "Moderately increase performance in fall.", group = Just(Fall-Runner), rarity = Common, group-rate = 1, grade-value = 129, wit-check = False, activations = [Activation(precondition = "", condition = "season==3", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Speed(400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 90, icon-id = 10011) - Fall-Runner-x -> Skill-detail(skill-id = 200193, name = "Fall Runner ×", description = "Moderately decrease performance in fall.", group = Just(Fall-Runner), rarity = Common, group-rate = -1, grade-value = -129, wit-check = False, activations = [Activation(precondition = "", condition = "season==3", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Speed(-400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 50, icon-id = 10014) - Fall-Frenzy -> Skill-detail(skill-id = 200194, name = "Fall Frenzy", description = "Increase performance in fall, boosting Speed and Power.", group = Just(Fall-Runner), rarity = Rare, group-rate = 3, grade-value = 461, wit-check = False, activations = [Activation(precondition = "", condition = "season==3", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Speed(600000.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Passive-Power(600000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 130, icon-id = 10012) - Winter-Runner-Lv2 -> Skill-detail(skill-id = 200201, name = "Winter Runner ◎", description = "Increase performance in winter.", group = Just(Winter-Runner), rarity = Common, group-rate = 2, grade-value = 174, wit-check = False, activations = [Activation(precondition = "", condition = "season==4", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Speed(600000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 10011) - Winter-Runner -> Skill-detail(skill-id = 200202, name = "Winter Runner ○", description = "Moderately increase performance in winter.", group = Just(Winter-Runner), rarity = Common, group-rate = 1, grade-value = 129, wit-check = False, activations = [Activation(precondition = "", condition = "season==4", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Speed(400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 90, icon-id = 10011) - Winter-Runner-x -> Skill-detail(skill-id = 200203, name = "Winter Runner ×", description = "Moderately decrease performance in winter.", group = Just(Winter-Runner), rarity = Common, group-rate = -1, grade-value = -129, wit-check = False, activations = [Activation(precondition = "", condition = "season==4", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Speed(-400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 50, icon-id = 10014) - Sunny-Days-Lv2 -> Skill-detail(skill-id = 200211, name = "Sunny Days ◎", description = "Increase performance in sunny weather.", group = Just(Sunny-Days), rarity = Common, group-rate = 2, grade-value = 174, wit-check = False, activations = [Activation(precondition = "", condition = "weather==1", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Guts(600000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 10041) - Sunny-Days -> Skill-detail(skill-id = 200212, name = "Sunny Days ○", description = "Moderately increase performance in sunny weather.", group = Just(Sunny-Days), rarity = Common, group-rate = 1, grade-value = 129, wit-check = False, activations = [Activation(precondition = "", condition = "weather==1", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Guts(400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 90, icon-id = 10041) - Cloudy-Days-Lv2 -> Skill-detail(skill-id = 200221, name = "Cloudy Days ◎", description = "Increase performance in cloudy weather.", group = Just(Cloudy-Days), rarity = Common, group-rate = 2, grade-value = 174, wit-check = False, activations = [Activation(precondition = "", condition = "weather==2", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Guts(600000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 10041) - Cloudy-Days -> Skill-detail(skill-id = 200222, name = "Cloudy Days ○", description = "Moderately increase performance in cloudy weather.", group = Just(Cloudy-Days), rarity = Common, group-rate = 1, grade-value = 129, wit-check = False, activations = [Activation(precondition = "", condition = "weather==2", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Guts(400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 90, icon-id = 10041) - Rainy-Days-Lv2 -> Skill-detail(skill-id = 200231, name = "Rainy Days ◎", description = "Increase performance in rainy weather.", group = Just(Rainy-Days), rarity = Common, group-rate = 2, grade-value = 174, wit-check = False, activations = [Activation(precondition = "", condition = "weather==3", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Guts(600000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 10041) - Rainy-Days -> Skill-detail(skill-id = 200232, name = "Rainy Days ○", description = "Moderately increase performance in rainy weather.", group = Just(Rainy-Days), rarity = Common, group-rate = 1, grade-value = 129, wit-check = False, activations = [Activation(precondition = "", condition = "weather==3", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Guts(400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 90, icon-id = 10041) - Rainy-Days-x -> Skill-detail(skill-id = 200233, name = "Rainy Days ×", description = "Moderately decrease performance in rainy weather.", group = Just(Rainy-Days), rarity = Common, group-rate = -1, grade-value = -129, wit-check = False, activations = [Activation(precondition = "", condition = "weather==3", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Guts(-400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 50, icon-id = 10044) - Snowy-Days-Lv2 -> Skill-detail(skill-id = 200241, name = "Snowy Days ◎", description = "Increase performance in snowy weather.", group = Just(Snowy-Days), rarity = Common, group-rate = 2, grade-value = 174, wit-check = False, activations = [Activation(precondition = "", condition = "weather==4", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Guts(600000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 10041) - Snowy-Days -> Skill-detail(skill-id = 200242, name = "Snowy Days ○", description = "Moderately increase performance in snowy weather.", group = Just(Snowy-Days), rarity = Common, group-rate = 1, grade-value = 129, wit-check = False, activations = [Activation(precondition = "", condition = "weather==4", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Guts(400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 90, icon-id = 10041) - Inner-Post-Proficiency-Lv2 -> Skill-detail(skill-id = 200251, name = "Inner Post Proficiency ◎", description = "Increase performance in brackets 1–3.", group = Just(Inner-Post-Proficiency), rarity = Common, group-rate = 2, grade-value = 174, wit-check = False, activations = [Activation(precondition = "", condition = "post_number<=3", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Wit(600000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 10051) - Inner-Post-Proficiency -> Skill-detail(skill-id = 200252, name = "Inner Post Proficiency ○", description = "Moderately increase performance in brackets 1–3.", group = Just(Inner-Post-Proficiency), rarity = Common, group-rate = 1, grade-value = 129, wit-check = False, activations = [Activation(precondition = "", condition = "post_number<=3", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Wit(400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 90, icon-id = 10051) - Inner-Post-Averseness -> Skill-detail(skill-id = 200253, name = "Inner Post Averseness", description = "Moderately decrease performance in brackets 1–3.", group = Just(Inner-Post-Proficiency), rarity = Common, group-rate = -1, grade-value = -129, wit-check = False, activations = [Activation(precondition = "", condition = "post_number<=3", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Wit(-400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 50, icon-id = 10054) - Outer-Post-Proficiency-Lv2 -> Skill-detail(skill-id = 200261, name = "Outer Post Proficiency ◎", description = "Increase performance in brackets 6–8.", group = Just(Outer-Post-Proficiency), rarity = Common, group-rate = 2, grade-value = 174, wit-check = False, activations = [Activation(precondition = "", condition = "post_number>=6", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Speed(600000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 10011) - Outer-Post-Proficiency -> Skill-detail(skill-id = 200262, name = "Outer Post Proficiency ○", description = "Moderately increase performance in brackets 6–8.", group = Just(Outer-Post-Proficiency), rarity = Common, group-rate = 1, grade-value = 129, wit-check = False, activations = [Activation(precondition = "", condition = "post_number>=6", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Speed(400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 90, icon-id = 10011) - Outer-Post-Averseness -> Skill-detail(skill-id = 200263, name = "Outer Post Averseness", description = "Moderately decrease performance in brackets 6–8.", group = Just(Outer-Post-Proficiency), rarity = Common, group-rate = -1, grade-value = -129, wit-check = False, activations = [Activation(precondition = "", condition = "post_number>=6", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Speed(-400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 50, icon-id = 10014) - Maverick-Lv2 -> Skill-detail(skill-id = 200271, name = "Maverick ◎", description = "Greatly increase performance when no other runners are using the same strategy.", group = Just(Maverick), rarity = Common, group-rate = 2, grade-value = 174, wit-check = False, activations = [Activation(precondition = "", condition = "running_style_count_same<=1", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Speed(800000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 10011) - Maverick -> Skill-detail(skill-id = 200272, name = "Maverick ○", description = "Increase performance when no other runners are using the same strategy.", group = Just(Maverick), rarity = Common, group-rate = 1, grade-value = 129, wit-check = False, activations = [Activation(precondition = "", condition = "running_style_count_same<=1", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Speed(600000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 90, icon-id = 10011) - Competitive-Spirit-Lv2 -> Skill-detail(skill-id = 200281, name = "Competitive Spirit ◎", description = "Increase performance when many other runners are using the same strategy.", group = Just(Competitive-Spirit), rarity = Common, group-rate = 2, grade-value = 174, wit-check = False, activations = [Activation(precondition = "", condition = "running_style_count_same_rate>=40", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Power(600000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 10031) - Competitive-Spirit -> Skill-detail(skill-id = 200282, name = "Competitive Spirit ○", description = "Moderately increase performance when many other runners are using the same strategy.", group = Just(Competitive-Spirit), rarity = Common, group-rate = 1, grade-value = 129, wit-check = False, activations = [Activation(precondition = "", condition = "running_style_count_same_rate>=40", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Power(400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 90, icon-id = 10031) - Wallflower -> Skill-detail(skill-id = 200283, name = "Wallflower", description = "Moderately decrease performance when many other runners are using the same strategy.", group = Just(Competitive-Spirit), rarity = Common, group-rate = -1, grade-value = -129, wit-check = False, activations = [Activation(precondition = "", condition = "running_style_count_same_rate>=40", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Power(-400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 50, icon-id = 10034) - Target-in-Sight-Lv2 -> Skill-detail(skill-id = 200291, name = "Target in Sight ◎", description = "Increase performance when the favorite is using the same strategy.", group = Just(Target-in-Sight), rarity = Common, group-rate = 2, grade-value = 174, wit-check = False, activations = [Activation(precondition = "", condition = "running_style_equal_popularity_one==1", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Guts(600000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 10041) - Target-in-Sight -> Skill-detail(skill-id = 200292, name = "Target in Sight ○", description = "Moderately increase performance when the favorite is using the same strategy.", group = Just(Target-in-Sight), rarity = Common, group-rate = 1, grade-value = 129, wit-check = False, activations = [Activation(precondition = "", condition = "running_style_equal_popularity_one==1", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Guts(400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 90, icon-id = 10041) - Long-Shot-Lv2 -> Skill-detail(skill-id = 200301, name = "Long Shot ◎", description = "Increase performance when 4th favorite or below.", group = Just(Long-Shot), rarity = Common, group-rate = 2, grade-value = 174, wit-check = False, activations = [Activation(precondition = "", condition = "popularity>=4", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Speed(600000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 10011) - Long-Shot -> Skill-detail(skill-id = 200302, name = "Long Shot ○", description = "Moderately increase performance when 4th favorite or below.", group = Just(Long-Shot), rarity = Common, group-rate = 1, grade-value = 129, wit-check = False, activations = [Activation(precondition = "", condition = "popularity>=4", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Speed(400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 90, icon-id = 10011) - G1-Averseness -> Skill-detail(skill-id = 200311, name = "G1 Averseness", description = "Moderately decrease performance in G1 or otherwise important races.", group = Nothing, rarity = Common, group-rate = -1, grade-value = -129, wit-check = False, activations = [Activation(precondition = "", condition = "grade==100", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Speed(-400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 50, icon-id = 10014) - Paddock-Fright -> Skill-detail(skill-id = 200321, name = "Paddock Fright", description = "Moderately decrease performance when the favorite.", group = Nothing, rarity = Common, group-rate = -1, grade-value = -129, wit-check = False, activations = [Activation(precondition = "", condition = "popularity==1", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Stamina(-400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 50, icon-id = 10024) - Professor-of-Curvature -> Skill-detail(skill-id = 200331, name = "Professor of Curvature", description = "Increase velocity on a corner with skilled turning.", group = Just(Corner-Adept), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "all_corner_random==1", duration = 24000.decimal(-4), cooldown = 300000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20012) - Corner-Adept -> Skill-detail(skill-id = 200332, name = "Corner Adept ○", description = "Slightly increase velocity on a corner with skilled turning.", group = Just(Corner-Adept), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "all_corner_random==1", duration = 24000.decimal(-4), cooldown = 300000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20011) - Corner-Adept-x -> Skill-detail(skill-id = 200333, name = "Corner Adept ×", description = "Moderately decrease velocity on a corner with clumsy turning.", group = Just(Corner-Adept), rarity = Common, group-rate = -1, grade-value = -262, wit-check = True, activations = [Activation(precondition = "", condition = "all_corner_random==1", duration = 24000.decimal(-4), cooldown = 300000.decimal(-4), abilities = [Ability(ability-type =Current-Speed(-2000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 100, icon-id = 20014) - Corner-Connoisseur -> Skill-detail(skill-id = 200341, name = "Corner Connoisseur", description = "Increase acceleration on a corner with masterful turning.", group = Just(Corner-Acceleration), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "all_corner_random==1", duration = 30000.decimal(-4), cooldown = 300000.decimal(-4), abilities = [Ability(ability-type =Accel(4000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20042) - Corner-Acceleration -> Skill-detail(skill-id = 200342, name = "Corner Acceleration ○", description = "Slightly increase acceleration on a corner with masterful turning.", group = Just(Corner-Acceleration), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "all_corner_random==1", duration = 30000.decimal(-4), cooldown = 300000.decimal(-4), abilities = [Ability(ability-type =Accel(2000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20041) - Corner-Acceleration-x -> Skill-detail(skill-id = 200343, name = "Corner Acceleration ×", description = "Moderately decrease acceleration on a corner with awkward turning.", group = Just(Corner-Acceleration), rarity = Common, group-rate = -1, grade-value = -262, wit-check = True, activations = [Activation(precondition = "", condition = "all_corner_random==1", duration = 30000.decimal(-4), cooldown = 300000.decimal(-4), abilities = [Ability(ability-type =Accel(-2000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 100, icon-id = 20044) - Swinging-Maestro -> Skill-detail(skill-id = 200351, name = "Swinging Maestro", description = "Recover endurance on a corner with efficient turning.", group = Just(Corner-Recovery), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "corner_random==1@corner_random==2@corner_random==3@corner_random==4", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(550.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 170, icon-id = 20022) - Corner-Recovery -> Skill-detail(skill-id = 200352, name = "Corner Recovery ○", description = "Slightly recover endurance on a corner with efficient turning.", group = Just(Corner-Recovery), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "corner_random==1@corner_random==2@corner_random==3@corner_random==4", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(150.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 170, icon-id = 20021) - Corner-Recovery-x -> Skill-detail(skill-id = 200353, name = "Corner Recovery ×", description = "Moderately lose endurance on a corner with inefficient turning.", group = Just(Corner-Recovery), rarity = Common, group-rate = -1, grade-value = -262, wit-check = True, activations = [Activation(precondition = "", condition = "corner_random==1@corner_random==2@corner_random==3@corner_random==4", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(-200.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 100, icon-id = 20024) - Beeline-Burst -> Skill-detail(skill-id = 200361, name = "Beeline Burst", description = "Increase velocity on a straight.", group = Just(Straightaway-Adept), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "straight_random==1", duration = 24000.decimal(-4), cooldown = 300000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 170, icon-id = 20012) - Straightaway-Adept -> Skill-detail(skill-id = 200362, name = "Straightaway Adept", description = "Slightly increase velocity on a straight.", group = Just(Straightaway-Adept), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "straight_random==1", duration = 24000.decimal(-4), cooldown = 300000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 170, icon-id = 20011) - Rushing-Gale -> Skill-detail(skill-id = 200371, name = "Rushing Gale!", description = "Increase acceleration on a straight.", group = Just(Straightaway-Acceleration), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "straight_random==1", duration = 30000.decimal(-4), cooldown = 300000.decimal(-4), abilities = [Ability(ability-type =Accel(4000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 170, icon-id = 20042) - Straightaway-Acceleration -> Skill-detail(skill-id = 200372, name = "Straightaway Acceleration", description = "Slightly increase acceleration on a straight.", group = Just(Straightaway-Acceleration), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "straight_random==1", duration = 30000.decimal(-4), cooldown = 300000.decimal(-4), abilities = [Ability(ability-type =Accel(2000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 170, icon-id = 20041) - Breath-of-Fresh-Air -> Skill-detail(skill-id = 200381, name = "Breath of Fresh Air", description = "Recover endurance on a straight.", group = Just(Straightaway-Recovery), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "straight_random==1", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(550.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 170, icon-id = 20022) - Straightaway-Recovery -> Skill-detail(skill-id = 200382, name = "Straightaway Recovery", description = "Slightly recover endurance on a straight.", group = Just(Straightaway-Recovery), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "straight_random==1", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(150.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 170, icon-id = 20021) - Ramp-Revulsion -> Skill-detail(skill-id = 200391, name = "Ramp Revulsion", description = "Moderately increase fatigue on an uphill.", group = Nothing, rarity = Common, group-rate = -1, grade-value = -262, wit-check = True, activations = [Activation(precondition = "", condition = "up_slope_random==1", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(-200.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 100, icon-id = 20024) - Packphobia -> Skill-detail(skill-id = 200401, name = "Packphobia", description = "Moderately lose endurance when surrounded.", group = Nothing, rarity = Common, group-rate = -1, grade-value = -262, wit-check = True, activations = [Activation(precondition = "", condition = "accumulatetime>=2&is_surrounded==1", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(-200.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 100, icon-id = 20024) - Defeatist -> Skill-detail(skill-id = 200411, name = "Defeatist", description = "Moderately increase urge to give up when positioned around the very back on the final straight.", group = Nothing, rarity = Common, group-rate = -1, grade-value = -262, wit-check = True, activations = [Activation(precondition = "", condition = "last_straight_random==1&distance_diff_rate>=75", duration = 30000.decimal(-4), cooldown = 300000.decimal(-4), abilities = [Ability(ability-type =Current-Speed(-2000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 100, icon-id = 20014) - Reckless -> Skill-detail(skill-id = 200421, name = "Reckless", description = "Moderately increase carelessness when in the lead with around 200m remaining.", group = Nothing, rarity = Common, group-rate = -1, grade-value = -262, wit-check = True, activations = [Activation(precondition = "", condition = "remain_distance==200&order==1&bashin_diff_behind>=1", duration = 30000.decimal(-4), cooldown = 300000.decimal(-4), abilities = [Ability(ability-type =Current-Speed(-2000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 100, icon-id = 20014) - Concentration -> Skill-detail(skill-id = 200431, name = "Concentration", description = "Decrease time lost to slow starts.", group = Just(Focus), rarity = Rare, group-rate = 2, grade-value = 394, wit-check = True, activations = [Activation(precondition = "", condition = "always==1", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Gate-Delay(4000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 140, icon-id = 20062) - Focus -> Skill-detail(skill-id = 200432, name = "Focus", description = "Slightly decrease time lost to slow starts.", group = Just(Focus), rarity = Common, group-rate = 1, grade-value = 129, wit-check = True, activations = [Activation(precondition = "", condition = "always==1", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Gate-Delay(9000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 140, icon-id = 20061) - Gatekept -> Skill-detail(skill-id = 200433, name = "Gatekept", description = "Moderately increase time lost to slow starts.", group = Just(Focus), rarity = Common, group-rate = -1, grade-value = -174, wit-check = True, activations = [Activation(precondition = "", condition = "always==1", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Gate-Delay(15000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 70, icon-id = 20064) - Iron-Will -> Skill-detail(skill-id = 200441, name = "Iron Will", description = "Recover endurance when the way ahead is jammed early-race or mid-race.", group = Just(Lay-Low), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "phase<=1&accumulatetime>=5&blocked_front_continuetime>=1", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(550.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20022) - Lay-Low -> Skill-detail(skill-id = 200442, name = "Lay Low", description = "Slightly recover endurance when the way ahead is jammed early-race or mid-race.", group = Just(Lay-Low), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "phase<=1&accumulatetime>=5&blocked_front_continuetime>=1", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(150.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20021) - Center-Stage -> Skill-detail(skill-id = 200451, name = "Center Stage", description = "Greatly increase navigation early-race.", group = Just(Prudent-Positioning), rarity = Rare, group-rate = 2, grade-value = 334, wit-check = True, activations = [Activation(precondition = "", condition = "phase_random==0", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Lane-Speed(450.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 120, icon-id = 20052) - Prudent-Positioning -> Skill-detail(skill-id = 200452, name = "Prudent Positioning", description = "Increase navigation early-race.", group = Just(Prudent-Positioning), rarity = Common, group-rate = 1, grade-value = 129, wit-check = True, activations = [Activation(precondition = "", condition = "phase_random==0", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Lane-Speed(350.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 120, icon-id = 20051) - Its-On -> Skill-detail(skill-id = 200461, name = "It's On!", description = "Increase velocity when passing another runner mid-race.", group = Just(Ramp-Up), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "phase==1&change_order_onetime<0", duration = 18000.decimal(-4), cooldown = 300000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 170, icon-id = 20012) - Ramp-Up -> Skill-detail(skill-id = 200462, name = "Ramp Up", description = "Slightly increase velocity when passing another runner mid-race.", group = Just(Ramp-Up), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "phase==1&change_order_onetime<0", duration = 18000.decimal(-4), cooldown = 300000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 170, icon-id = 20011) - Indomitable -> Skill-detail(skill-id = 200471, name = "Indomitable", description = "Recover endurance when passed by another runner mid-race.", group = Just(Pace-Strategy), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "phase==1&change_order_onetime>0", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(550.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 170, icon-id = 20022) - Pace-Strategy -> Skill-detail(skill-id = 200472, name = "Pace Strategy", description = "Slightly recover endurance when passed by another runner mid-race.", group = Just(Pace-Strategy), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "phase==1&change_order_onetime>0", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(150.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 170, icon-id = 20021) - Unruffled -> Skill-detail(skill-id = 200481, name = "Unruffled", description = "Recover endurance when surrounded mid-race.", group = Just(Calm-in-a-Crowd), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "phase==1&is_surrounded==1", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(550.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 170, icon-id = 20022) - Calm-in-a-Crowd -> Skill-detail(skill-id = 200482, name = "Calm in a Crowd", description = "Slightly recover endurance when surrounded mid-race.", group = Just(Calm-in-a-Crowd), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "phase==1&is_surrounded==1", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(150.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 170, icon-id = 20021) - No-Stopping-Me -> Skill-detail(skill-id = 200491, name = "No Stopping Me!", description = "Increase maneuverability when the way ahead is blocked in the last spurt.", group = Just(Nimble-Navigator), rarity = Rare, group-rate = 2, grade-value = 394, wit-check = True, activations = [Activation(precondition = "", condition = "infront_near_lane_time>=1&is_lastspurt==1&hp_per>=1", duration = 30000.decimal(-4), cooldown = 300000.decimal(-4), abilities = [Ability(ability-type =Accel(4000.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Lane-Speed(250.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 150, icon-id = 20042) - Nimble-Navigator -> Skill-detail(skill-id = 200492, name = "Nimble Navigator", description = "Slightly increase maneuverability when the way ahead is blocked in the last spurt.", group = Just(Nimble-Navigator), rarity = Common, group-rate = 1, grade-value = 174, wit-check = True, activations = [Activation(precondition = "", condition = "infront_near_lane_time>=1&is_lastspurt==1&hp_per>=1", duration = 30000.decimal(-4), cooldown = 300000.decimal(-4), abilities = [Ability(ability-type =Accel(2000.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Lane-Speed(50.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 150, icon-id = 20041) - Lane-Legerdemain -> Skill-detail(skill-id = 200501, name = "Lane Legerdemain", description = "Increase navigation late-race.", group = Just(Go-with-the-Flow), rarity = Rare, group-rate = 2, grade-value = 334, wit-check = True, activations = [Activation(precondition = "", condition = "phase_random==2", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Lane-Speed(350.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 120, icon-id = 20052) - Go-with-the-Flow -> Skill-detail(skill-id = 200502, name = "Go with the Flow", description = "Moderately increase navigation late-race.", group = Just(Go-with-the-Flow), rarity = Common, group-rate = 1, grade-value = 129, wit-check = True, activations = [Activation(precondition = "", condition = "phase_random==2", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Lane-Speed(250.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 120, icon-id = 20051) - In-Body-and-Mind -> Skill-detail(skill-id = 200511, name = "In Body and Mind", description = "Increase velocity in the last spurt.", group = Just(Homestretch-Haste), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "is_lastspurt==1&phase_random==3", duration = 24000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 170, icon-id = 20012) - Homestretch-Haste -> Skill-detail(skill-id = 200512, name = "Homestretch Haste", description = "Slightly increase velocity in the last spurt.", group = Just(Homestretch-Haste), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "is_lastspurt==1&phase_random==3", duration = 24000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 170, icon-id = 20011) - Running-Idle -> Skill-detail(skill-id = 200521, name = "Running Idle", description = "Moderately increase fatigue when in the lead by too large of a margin.", group = Nothing, rarity = Common, group-rate = -1, grade-value = -262, wit-check = True, activations = [Activation(precondition = "", condition = "accumulatetime>=2&order==1&bashin_diff_behind>=1", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(-200.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 100, icon-id = 20024) - Taking-the-Lead -> Skill-detail(skill-id = 200531, name = "Taking the Lead", description = "Increase ability to go to the front early-race. (Front Runner)", group = Just(Early-Lead), rarity = Rare, group-rate = 2, grade-value = 334, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==1&phase==0", duration = 12000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(4000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 120, icon-id = 20042) - Early-Lead -> Skill-detail(skill-id = 200532, name = "Early Lead", description = "Slightly increase ability to go to the front early-race. (Front Runner)", group = Just(Early-Lead), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==1&phase==0", duration = 12000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(2000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 120, icon-id = 20041) - Escape-Artist -> Skill-detail(skill-id = 200541, name = "Escape Artist", description = "Increase ability to go to the front mid-race. (Front Runner)", group = Just(Fast-Paced), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==1&phase_random==1&order_rate<=50", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20012) - Fast-Paced -> Skill-detail(skill-id = 200542, name = "Fast-Paced", description = "Slightly increase ability to go to the front mid-race. (Front Runner)", group = Just(Fast-Paced), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==1&phase_random==1&order_rate<=50", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20011) - Unrestrained -> Skill-detail(skill-id = 200551, name = "Unrestrained", description = "Increase ability to keep the lead on the final corner. (Front Runner)", group = Just(Final-Push), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==1&is_finalcorner_random==1&order==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(4000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20042) - Final-Push -> Skill-detail(skill-id = 200552, name = "Final Push", description = "Slightly increase ability to keep the lead on the final corner. (Front Runner)", group = Just(Final-Push), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==1&is_finalcorner_random==1&order==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(2000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20041) - Calm-and-Collected -> Skill-detail(skill-id = 200561, name = "Calm and Collected", description = "Decrease fatigue upon approaching mid-race. (Pace Chaser)", group = Just(Stamina-to-Spare), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==2&phase_laterhalf_random==0&order_rate<=50", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(550.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20022) - Stamina-to-Spare -> Skill-detail(skill-id = 200562, name = "Stamina to Spare", description = "Slightly decrease fatigue upon approaching mid-race. (Pace Chaser)", group = Just(Stamina-to-Spare), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==2&phase_laterhalf_random==0&order_rate<=50", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(150.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20021) - Race-Planner -> Skill-detail(skill-id = 200571, name = "Race Planner", description = "Decrease fatigue mid-race. (Pace Chaser)", group = Just(Preferred-Position), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==2&phase_random==1&order_rate<=50", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(550.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20022) - Preferred-Position -> Skill-detail(skill-id = 200572, name = "Preferred Position", description = "Slightly decrease fatigue mid-race. (Pace Chaser)", group = Just(Preferred-Position), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==2&phase_random==1&order_rate<=50", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(150.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20021) - Speed-Star -> Skill-detail(skill-id = 200581, name = "Speed Star", description = "Increase ability to break out of the pack on the final corner. (Pace Chaser)", group = Just(Prepared-to-Pass), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==2&is_finalcorner_random==1&order_rate<=50", duration = 18000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20012) - Prepared-to-Pass -> Skill-detail(skill-id = 200582, name = "Prepared to Pass", description = "Slightly increase ability to break out of the pack on the final corner. (Pace Chaser)", group = Just(Prepared-to-Pass), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==2&is_finalcorner_random==1&order_rate<=50", duration = 18000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20011) - Fast-and-Furious -> Skill-detail(skill-id = 200591, name = "Fast & Furious", description = "Increase velocity mid-race. (Late Surger)", group = Just(Position-Pilfer), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==3&phase_random==1&order_rate>50", duration = 24000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20012) - Position-Pilfer -> Skill-detail(skill-id = 200592, name = "Position Pilfer", description = "Slightly increase velocity mid-race. (Late Surger)", group = Just(Position-Pilfer), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==3&phase_random==1&order_rate>50", duration = 24000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20011) - On-Your-Left -> Skill-detail(skill-id = 200601, name = "On Your Left!", description = "Increase acceleration late-race. (Late Surger)", group = Just(Slick-Surge), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==3&phase_random==2&order_rate>50", duration = 18000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(4000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20042) - Slick-Surge -> Skill-detail(skill-id = 200602, name = "Slick Surge", description = "Slightly increase acceleration late-race. (Late Surger)", group = Just(Slick-Surge), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==3&phase_random==2&order_rate>50", duration = 18000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(2000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20041) - Rising-Dragon -> Skill-detail(skill-id = 200611, name = "Rising Dragon", description = "Increase velocity when passing another runner on the outside on the final corner. (Late Surger)", group = Just(Outer-Swell), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==3&is_finalcorner==1&corner!=0&is_behind_in==1&change_order_onetime<0", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20012) - Outer-Swell -> Skill-detail(skill-id = 200612, name = "Outer Swell", description = "Slightly increase velocity when passing another runner on the outside on the final corner. (Late Surger)", group = Just(Outer-Swell), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==3&is_finalcorner==1&corner!=0&is_behind_in==1&change_order_onetime<0", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20011) - Sleeping-Lion -> Skill-detail(skill-id = 200621, name = "Sleeping Lion", description = "Decrease fatigue mid-race. (End Closer)", group = Just(Standing-By), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==4&phase_random==1&distance_diff_rate>=75", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(550.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20022) - Standing-By -> Skill-detail(skill-id = 200622, name = "Standing By", description = "Slightly decrease fatigue mid-race. (End Closer)", group = Just(Standing-By), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==4&phase_random==1&distance_diff_rate>=75", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(150.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20021) - Sturm-und-Drang -> Skill-detail(skill-id = 200631, name = "Sturm und Drang", description = "Move up in preparation to close the gap when positioned toward the back late-race. (End Closer)", group = Just(Masterful-Gambit), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==4&phase_random==2&distance_diff_rate>=50", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20012) - Masterful-Gambit -> Skill-detail(skill-id = 200632, name = "Masterful Gambit", description = "Slightly move up in preparation to close the gap when positioned toward the back late-race. (End Closer)", group = Just(Masterful-Gambit), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==4&phase_random==2&distance_diff_rate>=50", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20011) - Encroaching-Shadow -> Skill-detail(skill-id = 200641, name = "Encroaching Shadow", description = "Increase acceleration on a straight in the last spurt. (End Closer)", group = Just(Straightaway-Spurt), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==4&is_lastspurt==1&corner==0", duration = 9000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(4000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20042) - Straightaway-Spurt -> Skill-detail(skill-id = 200642, name = "Straightaway Spurt", description = "Slightly increase acceleration on a straight in the last spurt. (End Closer)", group = Just(Straightaway-Spurt), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==4&is_lastspurt==1&corner==0", duration = 9000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(2000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20041) - Turbo-Sprint -> Skill-detail(skill-id = 200651, name = "Turbo Sprint", description = "Increase acceleration on a straight. (Sprint)", group = Just(Sprinting-Gear), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==1&straight_random==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(4000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20042) - Sprinting-Gear -> Skill-detail(skill-id = 200652, name = "Sprinting Gear", description = "Slightly increase acceleration on a straight. (Sprint)", group = Just(Sprinting-Gear), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==1&straight_random==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(2000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20041) - Wait-and-See -> Skill-detail(skill-id = 200662, name = "Wait-and-See", description = "Slightly decrease fatigue and very slightly increase acceleration when positioned toward the back mid-race. (Sprint)", group = Just(Wait-and-See), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==1&phase_random==1&order_rate>50", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(150.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Accel(1000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20021) - Blinding-Flash -> Skill-detail(skill-id = 200671, name = "Blinding Flash", description = "Increase spurting ability when positioned toward the back late-race. (Sprint)", group = Just(Gap-Closer), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==1&phase_random==2&order_rate>50", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Accel(1000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20012) - Gap-Closer -> Skill-detail(skill-id = 200672, name = "Gap Closer", description = "Slightly increase spurting ability when positioned toward the back late-race. (Sprint)", group = Just(Gap-Closer), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==1&phase_random==2&order_rate>50", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Accel(500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20011) - Mile-Maven -> Skill-detail(skill-id = 200681, name = "Mile Maven", description = "Widen the margin when positioned toward the front early-race. (Mile)", group = Just(Productive-Plan), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==2&phase_random==0&accumulatetime>=5&order_rate<=50", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20012) - Productive-Plan -> Skill-detail(skill-id = 200682, name = "Productive Plan", description = "Slightly widen the margin when positioned toward the front early-race. (Mile)", group = Just(Productive-Plan), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==2&phase_random==0&accumulatetime>=5&order_rate<=50", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20011) - Keen-Eye -> Skill-detail(skill-id = 200691, name = "Keen Eye", description = "Decrease fatigue, then moderately decrease velocity of runners ahead when positioned toward the back upon approaching mid-race. (Mile)", group = Just(Watchful-Eye), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==2&phase_laterhalf_random==0&order_rate>50", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(550.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Current-Speed(-2000.decimal(-4)), value-usage =Direct, target =Ahead(18)),]),], sp-cost = 160, icon-id = 20022) - Watchful-Eye -> Skill-detail(skill-id = 200692, name = "Watchful Eye", description = "Slightly decrease fatigue, then very slightly decrease velocity of runners ahead when positioned toward the back upon approaching mid-race. (Mile)", group = Just(Watchful-Eye), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==2&phase_laterhalf_random==0&order_rate>50", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(150.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Current-Speed(-500.decimal(-4)), value-usage =Direct, target =Ahead(18)),]),], sp-cost = 160, icon-id = 20021) - Furious-Feat -> Skill-detail(skill-id = 200701, name = "Furious Feat", description = "Increase passing ability when positioned toward the back late-race. (Mile)", group = Just(Updrafters), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==2&phase_random==2&order_rate>50", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(4000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20042) - Updrafters -> Skill-detail(skill-id = 200702, name = "Updrafters", description = "Slightly increase passing ability when positioned toward the back late-race. (Mile)", group = Just(Updrafters), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==2&phase_random==2&order_rate>50", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(2000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20041) - Trackblazer -> Skill-detail(skill-id = 200711, name = "Trackblazer", description = "Decrease fatigue when positioned toward the front mid-race. (Medium)", group = Just(Rosy-Outlook), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==3&phase_random==1&order<=3", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(550.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20022) - Rosy-Outlook -> Skill-detail(skill-id = 200712, name = "Rosy Outlook", description = "Slightly decrease fatigue when positioned toward the front mid-race. (Medium)", group = Just(Rosy-Outlook), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==3&phase_random==1&order<=3", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(150.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20021) - Killer-Tunes -> Skill-detail(skill-id = 200721, name = "Killer Tunes", description = "Increase positioning ability when positioned toward the front mid-race. (Medium)", group = Just(Up-Tempo), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==3&phase_random==1&order_rate<=50", duration = 24000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20012) - Up-Tempo -> Skill-detail(skill-id = 200722, name = "Up-Tempo", description = "Slightly increase positioning ability when positioned toward the front mid-race. (Medium)", group = Just(Up-Tempo), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==3&phase_random==1&order_rate<=50", duration = 24000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20011) - Unyielding -> Skill-detail(skill-id = 200731, name = "Unyielding", description = "Increase ability to fight back when passed by another runner on the final corner. (Medium)", group = Just(Steadfast), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==3&is_finalcorner==1&corner!=0&change_order_onetime>0", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Accel(1000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20012) - Steadfast -> Skill-detail(skill-id = 200732, name = "Steadfast", description = "Slightly increase ability to fight back when passed by another runner on the final corner. (Medium)", group = Just(Steadfast), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==3&is_finalcorner==1&corner!=0&change_order_onetime>0", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Accel(500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20011) - Cooldown -> Skill-detail(skill-id = 200741, name = "Cooldown", description = "Decrease fatigue by taking a breather upon entering a straight. (Long)", group = Just(Deep-Breaths), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==4&straight_random==1", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(550.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20022) - Deep-Breaths -> Skill-detail(skill-id = 200742, name = "Deep Breaths", description = "Slightly decrease fatigue by taking a breather upon entering a straight. (Long)", group = Just(Deep-Breaths), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==4&straight_random==1", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(150.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20021) - Innate-Experience -> Skill-detail(skill-id = 200751, name = "Innate Experience", description = "Increase velocity when near the inner rail on the final corner. (Long)", group = Just(Inside-Scoop), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==4&is_finalcorner==1&corner!=0&lane_type==0", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20012) - Inside-Scoop -> Skill-detail(skill-id = 200752, name = "Inside Scoop", description = "Slightly increase velocity when near the inner rail on the final corner. (Long)", group = Just(Inside-Scoop), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==4&is_finalcorner==1&corner!=0&lane_type==0", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20011) - Adrenaline-Rush -> Skill-detail(skill-id = 200761, name = "Adrenaline Rush", description = "Regain the energy to run when close to exhausting strength. (Long)", group = Just(Extra-Tank), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==4&hp_per<=30", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(550.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20022) - Extra-Tank -> Skill-detail(skill-id = 200762, name = "Extra Tank", description = "Slightly regain the energy to run when close to exhausting strength. (Long)", group = Just(Extra-Tank), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==4&hp_per<=30", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(150.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20021) - Trick-Front -> Skill-detail(skill-id = 200771, name = "Trick (Front)", description = "Slightly increase fatigue for rushed runners behind when positioned toward the front mid-race.", group = Just(Trick-Front), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "phase==1&order_rate<=50&temptation_count_behind>=1", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(-100.decimal(-4)), value-usage =Direct, target =Rushing-Behind(10)),]),], sp-cost = 140, icon-id = 30051) - Tantalizing-Trick -> Skill-detail(skill-id = 200772, name = "Tantalizing Trick", description = "Increase fatigue for rushed runners behind when positioned toward the front mid-race.", group = Just(Trick-Front), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "phase==1&order_rate<=50&temptation_count_behind>=1", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(-300.decimal(-4)), value-usage =Direct, target =Rushing-Behind(10)),]),], sp-cost = 140, icon-id = 30052) - Trick-Rear -> Skill-detail(skill-id = 200781, name = "Trick (Rear)", description = "Slightly increase fatigue for rushed runners ahead when positioned toward the back mid-race.", group = Just(Trick-Rear), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "phase==1&order_rate>50&temptation_count_infront>=1", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(-100.decimal(-4)), value-usage =Direct, target =Rushing-Ahead(10)),]),], sp-cost = 140, icon-id = 30051) - Frenzied-Front-Runners -> Skill-detail(skill-id = 200791, name = "Frenzied Front Runners", description = "Increase time needed for front runners to calm down when they become rushed.", group = Just(Frenzied-Front-Runners), rarity = Common, group-rate = 1, grade-value = 174, wit-check = True, activations = [Activation(precondition = "", condition = "running_style_temptation_count_nige>=1&is_temptation==0", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Frenzy(50000.decimal(-4)), value-usage =Direct, target =Rushing-Style(Front-Runner)),]),], sp-cost = 130, icon-id = 30041) - Frenzied-Pace-Chasers -> Skill-detail(skill-id = 200801, name = "Frenzied Pace Chasers", description = "Increase time needed for pace chasers to calm down when they become rushed.", group = Just(Frenzied-Pace-Chasers), rarity = Common, group-rate = 1, grade-value = 174, wit-check = True, activations = [Activation(precondition = "", condition = "running_style_temptation_count_senko>=1&is_temptation==0", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Frenzy(50000.decimal(-4)), value-usage =Direct, target =Rushing-Style(Pace-Chaser)),]),], sp-cost = 130, icon-id = 30041) - Frenzied-Late-Surgers -> Skill-detail(skill-id = 200811, name = "Frenzied Late Surgers", description = "Increase time needed for late surgers to calm down when they become rushed.", group = Just(Frenzied-Late-Surgers), rarity = Common, group-rate = 1, grade-value = 174, wit-check = True, activations = [Activation(precondition = "", condition = "running_style_temptation_count_sashi>=1&is_temptation==0", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Frenzy(50000.decimal(-4)), value-usage =Direct, target =Rushing-Style(Late-Surger)),]),], sp-cost = 130, icon-id = 30041) - Frenzied-End-Closers -> Skill-detail(skill-id = 200821, name = "Frenzied End Closers", description = "Increase time needed for end closers to calm down when they become rushed.", group = Just(Frenzied-End-Closers), rarity = Common, group-rate = 1, grade-value = 174, wit-check = True, activations = [Activation(precondition = "", condition = "running_style_temptation_count_oikomi>=1&is_temptation==0", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Frenzy(50000.decimal(-4)), value-usage =Direct, target =Rushing-Style(End-Closer)),]),], sp-cost = 130, icon-id = 30041) - Subdued-Front-Runners -> Skill-detail(skill-id = 200831, name = "Subdued Front Runners", description = "Slightly increase fatigue for front runners early-race.", group = Just(Subdued-Front-Runners), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style_count_nige_otherself>=1&phase_random==0&accumulatetime>=5", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(-100.decimal(-4)), value-usage =Direct, target =Style(Front-Runner)),]),], sp-cost = 130, icon-id = 30051) - Flustered-Front-Runners -> Skill-detail(skill-id = 200841, name = "Flustered Front Runners", description = "Slightly increase fatigue for front runners mid-race.", group = Just(Flustered-Front-Runners), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style_count_nige_otherself>=1&phase_random==1", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(-100.decimal(-4)), value-usage =Direct, target =Style(Front-Runner)),]),], sp-cost = 130, icon-id = 30051) - Hesitant-Front-Runners -> Skill-detail(skill-id = 200851, name = "Hesitant Front Runners", description = "Slightly decrease velocity of front runners late-race.", group = Just(Hesitant-Front-Runners), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style_count_nige_otherself>=1&phase_random==2", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Current-Speed(-1500.decimal(-4)), value-usage =Direct, target =Style(Front-Runner)),]),], sp-cost = 130, icon-id = 30011) - Subdued-Pace-Chasers -> Skill-detail(skill-id = 200861, name = "Subdued Pace Chasers", description = "Slightly increase fatigue for pace chasers early-race.", group = Just(Subdued-Pace-Chasers), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style_count_senko_otherself>=1&phase_random==0&accumulatetime>=5", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(-100.decimal(-4)), value-usage =Direct, target =Style(Pace-Chaser)),]),], sp-cost = 130, icon-id = 30051) - Flustered-Pace-Chasers -> Skill-detail(skill-id = 200871, name = "Flustered Pace Chasers", description = "Slightly increase fatigue for pace chasers mid-race.", group = Just(Flustered-Pace-Chasers), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style_count_senko_otherself>=1&phase_random==1", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(-100.decimal(-4)), value-usage =Direct, target =Style(Pace-Chaser)),]),], sp-cost = 130, icon-id = 30051) - Hesitant-Pace-Chasers -> Skill-detail(skill-id = 200881, name = "Hesitant Pace Chasers", description = "Slightly decrease velocity of pace chasers late-race.", group = Just(Hesitant-Pace-Chasers), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style_count_senko_otherself>=1&phase_random==2", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Current-Speed(-1500.decimal(-4)), value-usage =Direct, target =Style(Pace-Chaser)),]),], sp-cost = 130, icon-id = 30011) - Subdued-Late-Surgers -> Skill-detail(skill-id = 200891, name = "Subdued Late Surgers", description = "Slightly increase fatigue for late surgers early-race.", group = Just(Subdued-Late-Surgers), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style_count_sashi_otherself>=1&phase_random==0&accumulatetime>=5", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(-100.decimal(-4)), value-usage =Direct, target =Style(Late-Surger)),]),], sp-cost = 130, icon-id = 30051) - Flustered-Late-Surgers -> Skill-detail(skill-id = 200901, name = "Flustered Late Surgers", description = "Slightly increase fatigue for late surgers mid-race.", group = Just(Flustered-Late-Surgers), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style_count_sashi_otherself>=1&phase_random==1", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(-100.decimal(-4)), value-usage =Direct, target =Style(Late-Surger)),]),], sp-cost = 130, icon-id = 30051) - Hesitant-Late-Surgers -> Skill-detail(skill-id = 200911, name = "Hesitant Late Surgers", description = "Slightly decrease velocity of late surgers late-race.", group = Just(Hesitant-Late-Surgers), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style_count_sashi_otherself>=1&phase_random==2", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Current-Speed(-1500.decimal(-4)), value-usage =Direct, target =Style(Late-Surger)),]),], sp-cost = 130, icon-id = 30011) - Subdued-End-Closers -> Skill-detail(skill-id = 200921, name = "Subdued End Closers", description = "Slightly increase fatigue for end closers early-race.", group = Just(Subdued-End-Closers), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style_count_oikomi_otherself>=1&phase_random==0&accumulatetime>=5", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(-100.decimal(-4)), value-usage =Direct, target =Style(End-Closer)),]),], sp-cost = 130, icon-id = 30051) - Flustered-End-Closers -> Skill-detail(skill-id = 200931, name = "Flustered End Closers", description = "Slightly increase fatigue for end closers mid-race.", group = Just(Flustered-End-Closers), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style_count_oikomi_otherself>=1&phase_random==1", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(-100.decimal(-4)), value-usage =Direct, target =Style(End-Closer)),]),], sp-cost = 130, icon-id = 30051) - Hesitant-End-Closers -> Skill-detail(skill-id = 200941, name = "Hesitant End Closers", description = "Slightly decrease velocity of end closers late-race.", group = Just(Hesitant-End-Closers), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style_count_oikomi_otherself>=1&phase_random==2", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Current-Speed(-1500.decimal(-4)), value-usage =Direct, target =Style(End-Closer)),]),], sp-cost = 130, icon-id = 30011) - Oi-Racecourse-Lv2 -> Skill-detail(skill-id = 200951, name = "Oi Racecourse ◎", description = "Increase performance at Oi Racecourse.", group = Just(Oi-Racecourse), rarity = Common, group-rate = 2, grade-value = 174, wit-check = False, activations = [Activation(precondition = "", condition = "track_id==10101", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Stamina(600000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 10021) - Oi-Racecourse -> Skill-detail(skill-id = 200952, name = "Oi Racecourse ○", description = "Moderately increase performance at Oi Racecourse.", group = Just(Oi-Racecourse), rarity = Common, group-rate = 1, grade-value = 129, wit-check = False, activations = [Activation(precondition = "", condition = "track_id==10101", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Stamina(400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 90, icon-id = 10021) - Oi-Racecourse-x -> Skill-detail(skill-id = 200953, name = "Oi Racecourse ×", description = "Moderately decrease performance at Oi Racecourse.", group = Just(Oi-Racecourse), rarity = Common, group-rate = -1, grade-value = -129, wit-check = False, activations = [Activation(precondition = "", condition = "track_id==10101", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Stamina(-400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 50, icon-id = 10024) - Sprint-Straightaways-Lv2 -> Skill-detail(skill-id = 200961, name = "Sprint Straightaways ◎", description = "Moderately increase velocity on a straight. (Sprint)", group = Just(Sprint-Straightaways), rarity = Common, group-rate = 2, grade-value = 262, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==1&straight_random==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 20011) - Sprint-Straightaways -> Skill-detail(skill-id = 200962, name = "Sprint Straightaways ○", description = "Slightly increase velocity on a straight. (Sprint)", group = Just(Sprint-Straightaways), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==1&straight_random==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 100, icon-id = 20011) - Sprint-Corners-Lv2 -> Skill-detail(skill-id = 200971, name = "Sprint Corners ◎", description = "Moderately increase velocity on a corner. (Sprint)", group = Just(Sprint-Corners), rarity = Common, group-rate = 2, grade-value = 262, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==1&all_corner_random==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 20011) - Sprint-Corners -> Skill-detail(skill-id = 200972, name = "Sprint Corners ○", description = "Slightly increase velocity on a corner. (Sprint)", group = Just(Sprint-Corners), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==1&all_corner_random==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 100, icon-id = 20011) - Staggering-Lead -> Skill-detail(skill-id = 200981, name = "Staggering Lead", description = "Increase ability to maintain the lead when leading by a large margin mid-race. (Sprint)", group = Just(Huge-Lead), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==1&phase==1&bashin_diff_behind>=3&order==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 170, icon-id = 20012) - Huge-Lead -> Skill-detail(skill-id = 200982, name = "Huge Lead", description = "Slightly increase ability to maintain the lead when leading by a large margin mid-race. (Sprint)", group = Just(Huge-Lead), rarity = Common, group-rate = 1, grade-value = 262, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==1&phase==1&bashin_diff_behind>=3&order==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 170, icon-id = 20011) - Plan-X -> Skill-detail(skill-id = 200991, name = "Plan X", description = "Increase passing ability when positioned toward the front upon approaching late-race. (Sprint)", group = Just(Countermeasure), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==1&phase_laterhalf_random==1&order>=2&order_rate<=50", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(4000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20042) - Countermeasure -> Skill-detail(skill-id = 200992, name = "Countermeasure", description = "Slightly increase passing ability when positioned toward the front upon approaching late-race. (Sprint)", group = Just(Countermeasure), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==1&phase_laterhalf_random==1&order>=2&order_rate<=50", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(2000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20041) - Perfect-Prep -> Skill-detail(skill-id = 201001, name = "Perfect Prep!", description = "Prepare to make for the finish line for a medium duration mid-race. (Sprint)", group = Just(Meticulous-Measures), rarity = Rare, group-rate = 2, grade-value = 394, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==1&phase_random==1", duration = 40000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Lane-Speed(350.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Accel(3000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 140, icon-id = 20052) - Meticulous-Measures -> Skill-detail(skill-id = 201002, name = "Meticulous Measures", description = "Moderately prepare to make for the finish line for a medium duration mid-race. (Sprint)", group = Just(Meticulous-Measures), rarity = Common, group-rate = 1, grade-value = 174, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==1&phase_random==1", duration = 40000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Lane-Speed(250.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Accel(2000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 140, icon-id = 20051) - Adored-by-All -> Skill-detail(skill-id = 201011, name = "Adored by All", description = "Intimidate runners behind when positioned toward the front early-race. (Sprint)", group = Just(Intimidate), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==1&phase_random==0&order_rate<=50&accumulatetime>=5", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Current-Speed(-2500.decimal(-4)), value-usage =Direct, target =Behind(18)),]),], sp-cost = 170, icon-id = 30012) - Intimidate -> Skill-detail(skill-id = 201012, name = "Intimidate", description = "Moderately intimidate runners behind when positioned toward the front early-race. (Sprint)", group = Just(Intimidate), rarity = Common, group-rate = 1, grade-value = 262, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==1&phase_random==0&order_rate<=50&accumulatetime>=5", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Current-Speed(-2000.decimal(-4)), value-usage =Direct, target =Behind(18)),]),], sp-cost = 170, icon-id = 30011) - You-ve-Got-No-Shot -> Skill-detail(skill-id = 201021, name = "You've Got No Shot", description = "Cause panic in and moderately dull movement for runners ahead when positioned toward the back early-race. (Sprint)", group = Just(Stop-Right-There), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==1&phase_random==0&order_rate>50&accumulatetime>=5", duration = 12000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(-300.decimal(-4)), value-usage =Direct, target =Ahead(18)),Ability(ability-type =Accel(-2000.decimal(-4)), value-usage =Direct, target =Ahead(18)),]),], sp-cost = 170, icon-id = 30052) - Stop-Right-There -> Skill-detail(skill-id = 201022, name = "Stop Right There!", description = "Slightly cause panic in and very slightly dull movement for runners ahead when positioned toward the back early-race. (Sprint)", group = Just(Stop-Right-There), rarity = Common, group-rate = 1, grade-value = 262, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==1&phase_random==0&order_rate>50&accumulatetime>=5", duration = 12000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(-100.decimal(-4)), value-usage =Direct, target =Ahead(18)),Ability(ability-type =Accel(-500.decimal(-4)), value-usage =Direct, target =Ahead(18)),]),], sp-cost = 170, icon-id = 30051) - Mile-Straightaways-Lv2 -> Skill-detail(skill-id = 201031, name = "Mile Straightaways ◎", description = "Moderately increase velocity on a straight. (Mile)", group = Just(Mile-Straightaways), rarity = Common, group-rate = 2, grade-value = 262, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==2&straight_random==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 20011) - Mile-Straightaways -> Skill-detail(skill-id = 201032, name = "Mile Straightaways ○", description = "Slightly increase velocity on a straight. (Mile)", group = Just(Mile-Straightaways), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==2&straight_random==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 100, icon-id = 20011) - Mile-Corners-Lv2 -> Skill-detail(skill-id = 201041, name = "Mile Corners ◎", description = "Moderately increase velocity on a corner. (Mile)", group = Just(Mile-Corners), rarity = Common, group-rate = 2, grade-value = 262, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==2&all_corner_random==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 20011) - Mile-Corners -> Skill-detail(skill-id = 201042, name = "Mile Corners ○", description = "Slightly increase velocity on a corner. (Mile)", group = Just(Mile-Corners), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==2&all_corner_random==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 100, icon-id = 20011) - Changing-Gears -> Skill-detail(skill-id = 201051, name = "Changing Gears", description = "Increase passing ability when positioned toward the front mid-race. (Mile)", group = Just(Shifting-Gears), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==2&phase_random==1&order_rate<=50", duration = 24000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20012) - Shifting-Gears -> Skill-detail(skill-id = 201052, name = "Shifting Gears", description = "Slightly increase passing ability when positioned toward the front mid-race. (Mile)", group = Just(Shifting-Gears), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==2&phase_random==1&order_rate<=50", duration = 24000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20011) - Step-on-the-Gas -> Skill-detail(skill-id = 201061, name = "Step on the Gas!", description = "Increase acceleration when passing another runner mid-race. (Mile)", group = Just(Acceleration), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==2&phase==1&change_order_onetime<0", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(4000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20042) - Acceleration -> Skill-detail(skill-id = 201062, name = "Acceleration", description = "Slightly increase acceleration when passing another runner mid-race. (Mile)", group = Just(Acceleration), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==2&phase==1&change_order_onetime<0", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(2000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20041) - Big-Sisterly -> Skill-detail(skill-id = 201071, name = "Big-Sisterly", description = "Increase passing ability. (Mile)", group = Just(Unyielding-Spirit), rarity = Rare, group-rate = 2, grade-value = 334, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==2&is_overtake==1&accumulatetime>=5", duration = 24000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 120, icon-id = 20012) - Unyielding-Spirit -> Skill-detail(skill-id = 201072, name = "Unyielding Spirit", description = "Slightly increase passing ability. (Mile)", group = Just(Unyielding-Spirit), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==2&is_overtake==1&accumulatetime>=5", duration = 24000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 120, icon-id = 20011) - Greed-for-Speed -> Skill-detail(skill-id = 201081, name = "Greed for Speed", description = "Moderately steal velocity from runners behind when positioned toward the front mid-race. (Mile)", group = Just(Speed-Eater), rarity = Rare, group-rate = 2, grade-value = 461, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==2&phase_random==1&order<=3", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Current-Speed(-2000.decimal(-4)), value-usage =Direct, target =Behind(5)),Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 30012) - Speed-Eater -> Skill-detail(skill-id = 201082, name = "Speed Eater", description = "Slightly steal velocity from runners behind when positioned toward the front mid-race. (Mile)", group = Just(Speed-Eater), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==2&phase_random==1&order<=3", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Current-Speed(-1500.decimal(-4)), value-usage =Direct, target =Behind(5)),Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 30011) - Battle-Formation -> Skill-detail(skill-id = 201091, name = "Battle Formation", description = "Dull movement for runners ahead when positioned toward the back early-race. (Mile)", group = Just(Opening-Gambit), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==2&phase_random==0&order_rate>50&accumulatetime>=3", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(-3000.decimal(-4)), value-usage =Direct, target =Ahead(18)),]),], sp-cost = 160, icon-id = 30022) - Opening-Gambit -> Skill-detail(skill-id = 201092, name = "Opening Gambit", description = "Slightly dull movement for runners ahead when positioned toward the back early-race. (Mile)", group = Just(Opening-Gambit), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==2&phase_random==0&order_rate>50&accumulatetime>=3", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(-1000.decimal(-4)), value-usage =Direct, target =Ahead(18)),]),], sp-cost = 160, icon-id = 30021) - Medium-Straightaways-Lv2 -> Skill-detail(skill-id = 201101, name = "Medium Straightaways ◎", description = "Moderately increase velocity on a straight. (Medium)", group = Just(Medium-Straightaways), rarity = Common, group-rate = 2, grade-value = 262, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==3&straight_random==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 20011) - Medium-Straightaways -> Skill-detail(skill-id = 201102, name = "Medium Straightaways ○", description = "Slightly increase velocity on a straight. (Medium)", group = Just(Medium-Straightaways), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==3&straight_random==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 100, icon-id = 20011) - Medium-Corners-Lv2 -> Skill-detail(skill-id = 201111, name = "Medium Corners ◎", description = "Moderately increase velocity on a corner. (Medium)", group = Just(Medium-Corners), rarity = Common, group-rate = 2, grade-value = 262, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==3&all_corner_random==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 20011) - Medium-Corners -> Skill-detail(skill-id = 201112, name = "Medium Corners ○", description = "Slightly increase velocity on a corner. (Medium)", group = Just(Medium-Corners), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==3&all_corner_random==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 100, icon-id = 20011) - Clairvoyance -> Skill-detail(skill-id = 201121, name = "Clairvoyance", description = "Widen field of view with heightened observation early-race. (Medium)", group = Just(Hawkeye), rarity = Rare, group-rate = 2, grade-value = 334, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==3&phase_random==0", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Vision(150000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 20092) - Hawkeye -> Skill-detail(skill-id = 201122, name = "Hawkeye", description = "Moderately widen field of view with heightened observation early-race. (Medium)", group = Just(Hawkeye), rarity = Common, group-rate = 1, grade-value = 129, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==3&phase_random==0", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Vision(100000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 20091) - Lightning-Step -> Skill-detail(skill-id = 201131, name = "Lightning Step", description = "Avoid becoming surrounded for a medium duration when positioned toward the back mid-race. (Medium)", group = Just(Thunderbolt-Step), rarity = Rare, group-rate = 2, grade-value = 394, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==3&phase_random==1&order_rate>50", duration = 40000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Lane-Speed(350.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Accel(3000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 140, icon-id = 20052) - Thunderbolt-Step -> Skill-detail(skill-id = 201132, name = "Thunderbolt Step", description = "Moderately avoid becoming surrounded for a medium duration when positioned toward the back mid-race. (Medium)", group = Just(Thunderbolt-Step), rarity = Common, group-rate = 1, grade-value = 174, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==3&phase_random==1&order_rate>50", duration = 40000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Lane-Speed(250.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Accel(2000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 140, icon-id = 20051) - Miraculous-Step -> Skill-detail(skill-id = 201141, name = "Miraculous Step", description = "Decrease fatigue when moving sideways. (Medium)", group = Just(Soft-Step), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==3&is_move_lane==1&accumulatetime>=10@distance_type==3&is_move_lane==2&accumulatetime>=10", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(550.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20022) - Soft-Step -> Skill-detail(skill-id = 201142, name = "Soft Step", description = "Slightly decrease fatigue when moving sideways. (Medium)", group = Just(Soft-Step), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==3&is_move_lane==1&accumulatetime>=10@distance_type==3&is_move_lane==2&accumulatetime>=10", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(150.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20021) - Dominator -> Skill-detail(skill-id = 201151, name = "Dominator", description = "Decrease velocity of runners ahead when positioned toward the back late-race. (Medium)", group = Just(Tether), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==3&phase_random==2&order_rate>50", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Current-Speed(-2500.decimal(-4)), value-usage =Direct, target =Ahead(18)),]),], sp-cost = 160, icon-id = 30012) - Tether -> Skill-detail(skill-id = 201152, name = "Tether", description = "Slightly decrease velocity of runners ahead when positioned toward the back late-race. (Medium)", group = Just(Tether), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==3&phase_random==2&order_rate>50", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Current-Speed(-1500.decimal(-4)), value-usage =Direct, target =Ahead(18)),]),], sp-cost = 160, icon-id = 30011) - Mystifying-Murmur -> Skill-detail(skill-id = 201161, name = "Mystifying Murmur", description = "Disturb runners directly ahead mid-race. (Medium)", group = Just(Murmur), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==3&phase==1&blocked_front_continuetime>=1", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(-300.decimal(-4)), value-usage =Direct, target =Ahead(18)),]),], sp-cost = 160, icon-id = 30052) - Murmur -> Skill-detail(skill-id = 201162, name = "Murmur", description = "Slightly disturb runners directly ahead mid-race. (Medium)", group = Just(Murmur), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==3&phase==1&blocked_front_continuetime>=1", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(-100.decimal(-4)), value-usage =Direct, target =Ahead(18)),]),], sp-cost = 160, icon-id = 30051) - Long-Straightaways-Lv2 -> Skill-detail(skill-id = 201171, name = "Long Straightaways ◎", description = "Moderately increase velocity on a straight. (Long)", group = Just(Long-Straightaways), rarity = Common, group-rate = 2, grade-value = 262, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==4&straight_random==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 20011) - Long-Straightaways -> Skill-detail(skill-id = 201172, name = "Long Straightaways ○", description = "Slightly increase velocity on a straight. (Long)", group = Just(Long-Straightaways), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==4&straight_random==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 100, icon-id = 20011) - Long-Corners-Lv2 -> Skill-detail(skill-id = 201181, name = "Long Corners ◎", description = "Moderately increase velocity on a corner. (Long)", group = Just(Long-Corners), rarity = Common, group-rate = 2, grade-value = 262, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==4&all_corner_random==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 20011) - Long-Corners -> Skill-detail(skill-id = 201182, name = "Long Corners ○", description = "Slightly increase velocity on a corner. (Long)", group = Just(Long-Corners), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==4&all_corner_random==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 100, icon-id = 20011) - Vanguard-Spirit -> Skill-detail(skill-id = 201191, name = "Vanguard Spirit", description = "Increase ability to maintain the lead when leading by a fair margin mid-race. (Long)", group = Just(Keeping-the-Lead), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==4&phase_random==1&bashin_diff_behind>=1&order==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20012) - Keeping-the-Lead -> Skill-detail(skill-id = 201192, name = "Keeping the Lead", description = "Slightly increase ability to maintain the lead when leading by a fair margin mid-race. (Long)", group = Just(Keeping-the-Lead), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==4&phase_random==1&bashin_diff_behind>=1&order==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20011) - VIP-Pass -> Skill-detail(skill-id = 201201, name = "VIP Pass", description = "Decrease fatigue when determined to pass another runner. (Long)", group = Just(Passing-Pro), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==4&is_overtake==1&accumulatetime>=5", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(550.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20022) - Passing-Pro -> Skill-detail(skill-id = 201202, name = "Passing Pro", description = "Slightly decrease fatigue when determined to pass another runner. (Long)", group = Just(Passing-Pro), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==4&is_overtake==1&accumulatetime>=5", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(150.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20021) - Overwhelming-Pressure -> Skill-detail(skill-id = 201211, name = "Overwhelming Pressure", description = "Increase velocity when passing another runner late-race. (Long)", group = Just(Pressure), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==4&phase==2&change_order_onetime<0", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20012) - Pressure -> Skill-detail(skill-id = 201212, name = "Pressure", description = "Slightly increase velocity when passing another runner late-race. (Long)", group = Just(Pressure), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==4&phase==2&change_order_onetime<0", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20011) - Stamina-Siphon -> Skill-detail(skill-id = 201221, name = "Stamina Siphon", description = "Slightly steal endurance from runners ahead when positioned toward the back mid-race. (Long)", group = Just(Stamina-Eater), rarity = Rare, group-rate = 2, grade-value = 461, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==4&phase_random==1&order>=5", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(-100.decimal(-4)), value-usage =Direct, target =Ahead(5)),Ability(ability-type =HP(350.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 30052) - Stamina-Eater -> Skill-detail(skill-id = 201222, name = "Stamina Eater", description = "Very slightly steal endurance from runners ahead when positioned toward the back mid-race. (Long)", group = Just(Stamina-Eater), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==4&phase_random==1&order>=5", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(-50.decimal(-4)), value-usage =Direct, target =Ahead(5)),Ability(ability-type =HP(150.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 30051) - Illusionist -> Skill-detail(skill-id = 201231, name = "Illusionist", description = "Narrow the field of view for runners ahead late-race. (Long)", group = Just(Smoke-Screen), rarity = Rare, group-rate = 2, grade-value = 334, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==4&phase_random==2", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Vision(-100000.decimal(-4)), value-usage =Direct, target =Ahead(18)),]),], sp-cost = 110, icon-id = 30072) - Smoke-Screen -> Skill-detail(skill-id = 201232, name = "Smoke Screen", description = "Moderately narrow the field of view for runners ahead late-race. (Long)", group = Just(Smoke-Screen), rarity = Common, group-rate = 1, grade-value = 129, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==4&phase_random==2", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Vision(-50000.decimal(-4)), value-usage =Direct, target =Ahead(18)),]),], sp-cost = 110, icon-id = 30071) - Front-Runner-Straightaways-Lv2 -> Skill-detail(skill-id = 201241, name = "Front Runner Straightaways ◎", description = "Moderately increase velocity on a straight. (Front Runner)", group = Just(Front-Runner-Straightaways), rarity = Common, group-rate = 2, grade-value = 262, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==1&straight_random==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 140, icon-id = 20011) - Front-Runner-Straightaways -> Skill-detail(skill-id = 201242, name = "Front Runner Straightaways ○", description = "Slightly increase velocity on a straight. (Front Runner)", group = Just(Front-Runner-Straightaways), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==1&straight_random==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 130, icon-id = 20011) - Front-Runner-Corners-Lv2 -> Skill-detail(skill-id = 201251, name = "Front Runner Corners ◎", description = "Moderately increase velocity on a corner. (Front Runner)", group = Just(Front-Runner-Corners), rarity = Common, group-rate = 2, grade-value = 262, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==1&all_corner_random==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 140, icon-id = 20011) - Front-Runner-Corners -> Skill-detail(skill-id = 201252, name = "Front Runner Corners ○", description = "Slightly increase velocity on a corner. (Front Runner)", group = Just(Front-Runner-Corners), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==1&all_corner_random==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 130, icon-id = 20011) - Sixth-Sense -> Skill-detail(skill-id = 201261, name = "Sixth Sense", description = "Avoid becoming surrounded early-race. (Front Runner)", group = Just(Dodging-Danger), rarity = Rare, group-rate = 2, grade-value = 334, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==1&phase==0&blocked_front_continuetime>=1@running_style==1&phase==0&blocked_side_continuetime>=1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Lane-Speed(350.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Lane-Change(5000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 20052) - Dodging-Danger -> Skill-detail(skill-id = 201262, name = "Dodging Danger", description = "Moderately avoid becoming surrounded early-race. (Front Runner)", group = Just(Dodging-Danger), rarity = Common, group-rate = 1, grade-value = 129, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==1&phase==0&blocked_front_continuetime>=1@running_style==1&phase==0&blocked_side_continuetime>=1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Lane-Speed(250.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Lane-Change(5000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 20051) - Leaders-Pride -> Skill-detail(skill-id = 201272, name = "Leader's Pride", description = "Slightly increase ability to pass or challenge another runner early-race or mid-race. (Front Runner)", group = Just(Leaders-Pride), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==1&phase<=1&change_order_onetime>0&accumulatetime>=5@running_style==1&phase<=1&blocked_side_continuetime>=2&accumulatetime>=5", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20011) - Restless -> Skill-detail(skill-id = 201281, name = "Restless", description = "Reduce fatigue on an uphill. (Front Runner)", group = Just(Moxie), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==1&slope==1&accumulatetime>=10", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(550.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20022) - Moxie -> Skill-detail(skill-id = 201282, name = "Moxie", description = "Slightly reduce fatigue on an uphill. (Front Runner)", group = Just(Moxie), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==1&slope==1&accumulatetime>=10", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(150.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20021) - Reignition -> Skill-detail(skill-id = 201291, name = "Reignition", description = "Increase acceleration when not in the lead mid-race. (Front Runner)", group = Just(Second-Wind), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==1&phase_random==1&order>=2", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(4000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20042) - Second-Wind -> Skill-detail(skill-id = 201292, name = "Second Wind", description = "Slightly increase acceleration when not in the lead mid-race. (Front Runner)", group = Just(Second-Wind), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==1&phase_random==1&order>=2", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(2000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20041) - Restart -> Skill-detail(skill-id = 201302, name = "Restart", description = "Slightly dull movement for runners ahead when not in the lead early-race. (Front Runner)", group = Just(Restart), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==1&phase_random==0&order>=2&accumulatetime>=5", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(-1000.decimal(-4)), value-usage =Direct, target =Ahead(18)),]),], sp-cost = 130, icon-id = 30021) - Pace-Chaser-Straightaways-Lv2 -> Skill-detail(skill-id = 201311, name = "Pace Chaser Straightaways ◎", description = "Moderately increase velocity on a straight. (Pace Chaser)", group = Just(Pace-Chaser-Straightaways), rarity = Common, group-rate = 2, grade-value = 262, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==2&straight_random==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 140, icon-id = 20011) - Pace-Chaser-Straightaways -> Skill-detail(skill-id = 201312, name = "Pace Chaser Straightaways ○", description = "Slightly increase velocity on a straight. (Pace Chaser)", group = Just(Pace-Chaser-Straightaways), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==2&straight_random==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 130, icon-id = 20011) - Pace-Chaser-Corners-Lv2 -> Skill-detail(skill-id = 201321, name = "Pace Chaser Corners ◎", description = "Moderately increase velocity on a corner. (Pace Chaser)", group = Just(Pace-Chaser-Corners), rarity = Common, group-rate = 2, grade-value = 262, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==2&all_corner_random==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 140, icon-id = 20011) - Pace-Chaser-Corners -> Skill-detail(skill-id = 201322, name = "Pace Chaser Corners ○", description = "Slightly increase velocity on a corner. (Pace Chaser)", group = Just(Pace-Chaser-Corners), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==2&all_corner_random==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 130, icon-id = 20011) - Technician -> Skill-detail(skill-id = 201331, name = "Technician", description = "Moderately increase ability to navigate smoothly. (Pace Chaser)", group = Just(Shrewd-Step), rarity = Rare, group-rate = 2, grade-value = 334, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==2&is_move_lane==1@running_style==2&is_move_lane==2", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(3000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 120, icon-id = 20042) - Shrewd-Step -> Skill-detail(skill-id = 201332, name = "Shrewd Step", description = "Slightly increase ability to navigate smoothly. (Pace Chaser)", group = Just(Shrewd-Step), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==2&is_move_lane==1@running_style==2&is_move_lane==2", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(2000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 120, icon-id = 20041) - Determined-Descent -> Skill-detail(skill-id = 201341, name = "Determined Descent", description = "Moderately improve running on a downhill. (Pace Chaser)", group = Just(Straight-Descent), rarity = Rare, group-rate = 2, grade-value = 334, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==2&down_slope_random==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(3000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 120, icon-id = 20042) - Straight-Descent -> Skill-detail(skill-id = 201342, name = "Straight Descent", description = "Slightly improve running on a downhill. (Pace Chaser)", group = Just(Straight-Descent), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==2&down_slope_random==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(2000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 120, icon-id = 20041) - Gourmand -> Skill-detail(skill-id = 201351, name = "Gourmand", description = "Recover endurance mid-race. (Pace Chaser)", group = Just(Hydrate), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==2&phase_random==1", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(550.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20022) - Hydrate -> Skill-detail(skill-id = 201352, name = "Hydrate", description = "Slightly recover endurance mid-race. (Pace Chaser)", group = Just(Hydrate), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==2&phase_random==1", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(150.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20021) - Shatterproof -> Skill-detail(skill-id = 201361, name = "Shatterproof", description = "Moderately increase acceleration when positioned toward the back mid-race. (Pace Chaser)", group = Just(Tactical-Tweak), rarity = Rare, group-rate = 2, grade-value = 334, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==2&phase_random==1&order_rate>40", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(3000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 120, icon-id = 20042) - Tactical-Tweak -> Skill-detail(skill-id = 201362, name = "Tactical Tweak", description = "Slightly increase acceleration when positioned toward the back mid-race. (Pace Chaser)", group = Just(Tactical-Tweak), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==2&phase_random==1&order_rate>40", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(2000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 120, icon-id = 20041) - Dazzling-Disorientation -> Skill-detail(skill-id = 201371, name = "Dazzling Disorientation", description = "Moderately narrow the field of view for runners behind when positioned toward the front late-race. (Pace Chaser)", group = Just(Disorient), rarity = Rare, group-rate = 2, grade-value = 334, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==2&phase_random==2&order_rate<=50", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Vision(-50000.decimal(-4)), value-usage =Direct, target =Behind(18)),]),], sp-cost = 110, icon-id = 30072) - Disorient -> Skill-detail(skill-id = 201372, name = "Disorient", description = "Slightly narrow the field of view for runners behind when positioned toward the front late-race. (Pace Chaser)", group = Just(Disorient), rarity = Common, group-rate = 1, grade-value = 85, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==2&phase_random==2&order_rate<=50", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Vision(-30000.decimal(-4)), value-usage =Direct, target =Behind(18)),]),], sp-cost = 110, icon-id = 30071) - Late-Surger-Straightaways-Lv2 -> Skill-detail(skill-id = 201381, name = "Late Surger Straightaways ◎", description = "Moderately increase velocity on a straight. (Late Surger)", group = Just(Late-Surger-Straightaways), rarity = Common, group-rate = 2, grade-value = 262, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==3&straight_random==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 140, icon-id = 20011) - Late-Surger-Straightaways -> Skill-detail(skill-id = 201382, name = "Late Surger Straightaways ○", description = "Slightly increase velocity on a straight. (Late Surger)", group = Just(Late-Surger-Straightaways), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==3&straight_random==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 130, icon-id = 20011) - Late-Surger-Corners-Lv2 -> Skill-detail(skill-id = 201391, name = "Late Surger Corners ◎", description = "Moderately increase velocity on a corner. (Late Surger)", group = Just(Late-Surger-Corners), rarity = Common, group-rate = 2, grade-value = 262, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==3&all_corner_random==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 140, icon-id = 20011) - Late-Surger-Corners -> Skill-detail(skill-id = 201392, name = "Late Surger Corners ○", description = "Slightly increase velocity on a corner. (Late Surger)", group = Just(Late-Surger-Corners), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==3&all_corner_random==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 130, icon-id = 20011) - Hard-Worker -> Skill-detail(skill-id = 201401, name = "Hard Worker", description = "Moderately increase acceleration for a medium duration when trying to pass another runner. (Late Surger)", group = Just(Fighter), rarity = Rare, group-rate = 2, grade-value = 334, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==3&is_overtake==1&accumulatetime>=5", duration = 40000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(3000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 120, icon-id = 20042) - Fighter -> Skill-detail(skill-id = 201402, name = "Fighter", description = "Slightly increase acceleration for a medium duration when trying to pass another runner. (Late Surger)", group = Just(Fighter), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==3&is_overtake==1&accumulatetime>=5", duration = 40000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(2000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 120, icon-id = 20041) - Fifteen-Million-CC -> Skill-detail(skill-id = 201411, name = "15,000,000 CC", description = "Increase velocity on an uphill. (Late Surger)", group = Just(One-Million-CC), rarity = Rare, group-rate = 2, grade-value = 334, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==3&up_slope_random==1", duration = 24000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 120, icon-id = 20012) - One-Million-CC -> Skill-detail(skill-id = 201412, name = "1,500,000 CC", description = "Slightly increase velocity on an uphill. (Late Surger)", group = Just(One-Million-CC), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==3&up_slope_random==1", duration = 24000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 120, icon-id = 20011) - Relax -> Skill-detail(skill-id = 201421, name = "Relax", description = "Recover endurance late-race. (Late Surger)", group = Just(A-Small-Breather), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==3&phase_random==2", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(550.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20022) - A-Small-Breather -> Skill-detail(skill-id = 201422, name = "A Small Breather", description = "Slightly recover endurance late-race. (Late Surger)", group = Just(A-Small-Breather), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==3&phase_random==2", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(150.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20021) - The-Bigger-Picture -> Skill-detail(skill-id = 201431, name = "The Bigger Picture", description = "Widen field of view with heightened observation mid-race. (Late Surger)", group = Just(Studious), rarity = Rare, group-rate = 2, grade-value = 334, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==3&phase_random==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Vision(150000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 120, icon-id = 20092) - Studious -> Skill-detail(skill-id = 201432, name = "Studious", description = "Slightly widen field of view with heightened observation mid-race. (Late Surger)", group = Just(Studious), rarity = Common, group-rate = 1, grade-value = 85, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==3&phase_random==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Vision(50000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 120, icon-id = 20091) - All-Seeing-Eyes -> Skill-detail(skill-id = 201441, name = "All-Seeing Eyes", description = "Startle other runners late-race. (Late Surger)", group = Just(Sharp-Gaze), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==3&phase_random==2&order_rate>50", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(-300.decimal(-4)), value-usage =Direct, target =In-View),]),], sp-cost = 180, icon-id = 30052) - Sharp-Gaze -> Skill-detail(skill-id = 201442, name = "Sharp Gaze", description = "Slightly startle other runners late-race. (Late Surger)", group = Just(Sharp-Gaze), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==3&phase_random==2&order_rate>50", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(-100.decimal(-4)), value-usage =Direct, target =In-View),]),], sp-cost = 180, icon-id = 30051) - End-Closer-Straightaways-Lv2 -> Skill-detail(skill-id = 201451, name = "End Closer Straightaways ◎", description = "Moderately increase velocity on a straight. (End Closer)", group = Just(End-Closer-Straightaways), rarity = Common, group-rate = 2, grade-value = 262, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==4&straight_random==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 140, icon-id = 20011) - End-Closer-Straightaways -> Skill-detail(skill-id = 201452, name = "End Closer Straightaways ○", description = "Slightly increase velocity on a straight. (End Closer)", group = Just(End-Closer-Straightaways), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==4&straight_random==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 130, icon-id = 20011) - End-Closer-Corners-Lv2 -> Skill-detail(skill-id = 201461, name = "End Closer Corners ◎", description = "Moderately increase velocity on a corner. (End Closer)", group = Just(End-Closer-Corners), rarity = Common, group-rate = 2, grade-value = 262, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==4&all_corner_random==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 140, icon-id = 20011) - End-Closer-Corners -> Skill-detail(skill-id = 201462, name = "End Closer Corners ○", description = "Slightly increase velocity on a corner. (End Closer)", group = Just(End-Closer-Corners), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==4&all_corner_random==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 130, icon-id = 20011) - The-Coast-Is-Clear -> Skill-detail(skill-id = 201471, name = "The Coast Is Clear!", description = "Moderately widen field of view with situational awareness when moving sideways. (End Closer)", group = Just(I-Can-See-Right-Through-You), rarity = Rare, group-rate = 2, grade-value = 334, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==4&is_move_lane==1@running_style==4&is_move_lane==2", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Vision(100000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 20092) - I-Can-See-Right-Through-You -> Skill-detail(skill-id = 201472, name = "I Can See Right Through You", description = "Slightly widen field of view with situational awareness when moving sideways. (End Closer)", group = Just(I-Can-See-Right-Through-You), rarity = Common, group-rate = 1, grade-value = 85, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==4&is_move_lane==1@running_style==4&is_move_lane==2", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Vision(50000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 20091) - Go-Home-Specialist -> Skill-detail(skill-id = 201481, name = "Go-Home Specialist", description = "Reduce fatigue on a downhill. (End Closer)", group = Just(After-School-Stroll), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==4&slope==2&accumulatetime>=10", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(550.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 170, icon-id = 20022) - After-School-Stroll -> Skill-detail(skill-id = 201482, name = "After-School Stroll", description = "Slightly reduce fatigue on a downhill. (End Closer)", group = Just(After-School-Stroll), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==4&slope==2&accumulatetime>=10", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(150.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 170, icon-id = 20021) - Serenity -> Skill-detail(skill-id = 201491, name = "Serenity", description = "Regain composure by calming down when the way ahead is jammed. (End Closer)", group = Just(Levelheaded), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==4&blocked_front_continuetime>=1&accumulatetime>=10", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(550.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20022) - Levelheaded -> Skill-detail(skill-id = 201492, name = "Levelheaded", description = "Slightly regain composure by calming down when the way ahead is jammed. (End Closer)", group = Just(Levelheaded), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==4&blocked_front_continuetime>=1&accumulatetime>=10", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(150.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20021) - Crusader -> Skill-detail(skill-id = 201501, name = "Crusader", description = "Widen field of view when positioned toward the back late-race. (End Closer)", group = Just(Strategist), rarity = Rare, group-rate = 2, grade-value = 334, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==4&phase_random==2&order_rate>50", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Vision(150000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 20092) - Strategist -> Skill-detail(skill-id = 201502, name = "Strategist", description = "Slightly widen field of view when positioned toward the back late-race. (End Closer)", group = Just(Strategist), rarity = Common, group-rate = 1, grade-value = 85, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==4&phase_random==2&order_rate>50", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Vision(50000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 20091) - Petrifying-Gaze -> Skill-detail(skill-id = 201511, name = "Petrifying Gaze", description = "Unnerve runners in focus late-race. (End Closer)", group = Just(Intense-Gaze), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==4&phase_random==2&order>=2", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Current-Speed(-2500.decimal(-4)), value-usage =Direct, target =In-View),]),], sp-cost = 180, icon-id = 30012) - Intense-Gaze -> Skill-detail(skill-id = 201512, name = "Intense Gaze", description = "Slightly unnerve runners in focus late-race. (End Closer)", group = Just(Intense-Gaze), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==4&phase_random==2&order>=2", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Current-Speed(-1500.decimal(-4)), value-usage =Direct, target =In-View),]),], sp-cost = 180, icon-id = 30011) - Front-Runner-Savvy-Lv2 -> Skill-detail(skill-id = 201521, name = "Front Runner Savvy ◎", description = "Increase ability to get into a good position. (Front Runner)", group = Just(Front-Runner-Savvy), rarity = Common, group-rate = 2, grade-value = 217, wit-check = False, activations = [Activation(precondition = "", condition = "running_style==1", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Wit(600000.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Vision(100000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 130, icon-id = 10051) - Front-Runner-Savvy -> Skill-detail(skill-id = 201522, name = "Front Runner Savvy ○", description = "Moderately increase ability to get into a good position. (Front Runner)", group = Just(Front-Runner-Savvy), rarity = Common, group-rate = 1, grade-value = 174, wit-check = False, activations = [Activation(precondition = "", condition = "running_style==1", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Wit(400000.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Vision(50000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 10051) - Pace-Chaser-Savvy-Lv2 -> Skill-detail(skill-id = 201531, name = "Pace Chaser Savvy ◎", description = "Increase ability to get into a good position. (Pace Chaser)", group = Just(Pace-Chaser-Savvy), rarity = Common, group-rate = 2, grade-value = 217, wit-check = False, activations = [Activation(precondition = "", condition = "running_style==2", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Wit(600000.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Vision(100000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 130, icon-id = 10051) - Pace-Chaser-Savvy -> Skill-detail(skill-id = 201532, name = "Pace Chaser Savvy ○", description = "Moderately increase ability to get into a good position. (Pace Chaser)", group = Just(Pace-Chaser-Savvy), rarity = Common, group-rate = 1, grade-value = 174, wit-check = False, activations = [Activation(precondition = "", condition = "running_style==2", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Wit(400000.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Vision(50000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 10051) - Late-Surger-Savvy-Lv2 -> Skill-detail(skill-id = 201541, name = "Late Surger Savvy ◎", description = "Increase ability to get into a good position. (Late Surger)", group = Just(Late-Surger-Savvy), rarity = Common, group-rate = 2, grade-value = 217, wit-check = False, activations = [Activation(precondition = "", condition = "running_style==3", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Wit(600000.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Vision(100000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 130, icon-id = 10051) - Late-Surger-Savvy -> Skill-detail(skill-id = 201542, name = "Late Surger Savvy ○", description = "Moderately increase ability to get into a good position. (Late Surger)", group = Just(Late-Surger-Savvy), rarity = Common, group-rate = 1, grade-value = 174, wit-check = False, activations = [Activation(precondition = "", condition = "running_style==3", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Wit(400000.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Vision(50000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 10051) - End-Closer-Savvy-Lv2 -> Skill-detail(skill-id = 201551, name = "End Closer Savvy ◎", description = "Increase ability to get into a good position. (End Closer)", group = Just(End-Closer-Savvy), rarity = Common, group-rate = 2, grade-value = 217, wit-check = False, activations = [Activation(precondition = "", condition = "running_style==4", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Wit(600000.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Vision(100000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 130, icon-id = 10051) - End-Closer-Savvy -> Skill-detail(skill-id = 201552, name = "End Closer Savvy ○", description = "Moderately increase ability to get into a good position. (End Closer)", group = Just(End-Closer-Savvy), rarity = Common, group-rate = 1, grade-value = 174, wit-check = False, activations = [Activation(precondition = "", condition = "running_style==4", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Wit(400000.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Vision(50000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 10051) - Super-Lucky-Seven -> Skill-detail(skill-id = 201561, name = "Super Lucky Seven", description = "Good things may happen when in bracket 7.", group = Just(Lucky-Seven), rarity = Rare, group-rate = 2, grade-value = 334, wit-check = True, activations = [Activation(precondition = "", condition = "random_lot==50&post_number==7", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Speed(600000.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Passive-Stamina(600000.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Passive-Power(600000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 10062) - Lucky-Seven -> Skill-detail(skill-id = 201562, name = "Lucky Seven", description = "Moderately good things may happen when in bracket 7.", group = Just(Lucky-Seven), rarity = Common, group-rate = 1, grade-value = 174, wit-check = True, activations = [Activation(precondition = "", condition = "random_lot==50&post_number==7", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Speed(400000.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Passive-Stamina(400000.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Passive-Power(400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 110, icon-id = 10061) - Triple-Sevens -> Skill-detail(skill-id = 201571, name = "Triple 7s", description = "Slightly gain energy with 777m remaining.", group = Just(Triple-Sevens), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "remain_distance<=778&remain_distance>=776", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(150.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20021) - Highlander -> Skill-detail(skill-id = 201581, name = "Highlander", description = "Slightly improve running on an uphill.", group = Just(Highlander), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "up_slope_random==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(2000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20041) - Uma-Stan -> Skill-detail(skill-id = 201591, name = "Uma Stan", description = "Slightly increase velocity when close to many runners.", group = Just(Uma-Stan), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "near_count>=3&accumulatetime>=5", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20011) - Superstan -> Skill-detail(skill-id = 201592, name = "Superstan", description = "Increase velocity when close to many runners.", group = Just(Uma-Stan), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "near_count>=3&accumulatetime>=5", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20012) - Groundwork -> Skill-detail(skill-id = 201601, name = "Groundwork", description = "Slightly increase acceleration after activating many skills early-race.", group = Just(Groundwork), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "activate_count_start>=3", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(2000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 100, icon-id = 20041) - Tail-Held-High -> Skill-detail(skill-id = 201611, name = "Tail Held High", description = "Slightly increase velocity after activating many skills mid-race.", group = Just(Tail-Held-High), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "activate_count_middle>=3", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 100, icon-id = 20011) - Tail-Nine -> Skill-detail(skill-id = 201612, name = "Tail Nine", description = "Increase velocity after activating many skills mid-race.", group = Just(Tail-Held-High), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "activate_count_middle>=3", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20012) - Shake-It-Out -> Skill-detail(skill-id = 201621, name = "Shake It Out", description = "Slightly recover endurance after activating many skills late-race.", group = Just(Shake-It-Out), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "activate_count_end_after>=3", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(150.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 100, icon-id = 20021) - Sympathy -> Skill-detail(skill-id = 201631, name = "Sympathy", description = "Moderately increase performance when many runners share a sympathetic heart.", group = Just(Sympathy), rarity = Common, group-rate = 1, grade-value = 129, wit-check = False, activations = [Activation(precondition = "", condition = "same_skill_horse_count>=5", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Speed(400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 70, icon-id = 10011) - Lone-Wolf -> Skill-detail(skill-id = 201641, name = "Lone Wolf", description = "Moderately increase performance when no other runners have the heart of a lone wolf.", group = Just(Lone-Wolf), rarity = Common, group-rate = 1, grade-value = 129, wit-check = False, activations = [Activation(precondition = "", condition = "same_skill_horse_count==1", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Speed(400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 70, icon-id = 10011) - Slipstream -> Skill-detail(skill-id = 201651, name = "Slipstream", description = "Slightly decrease wind resistance when following directly behind another runner.", group = Just(Slipstream), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "infront_near_lane_time>=3&accumulatetime>=10", duration = 30000.decimal(-4), cooldown = 300000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20011) - Playtimes-Over -> Skill-detail(skill-id = 201661, name = "Playtime's Over!", description = "Slightly increase velocity when followed by another runner directly behind for a long time.", group = Just(Playtimes-Over), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "behind_near_lane_time>=3&accumulatetime>=10", duration = 30000.decimal(-4), cooldown = 300000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20011) - Trending-in-the-Charts -> Skill-detail(skill-id = 201671, name = "Trending in the Charts!", description = "Increase velocity when engaged in a challenge mid-race. (Dirt)", group = Just(Top-Pick), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "ground_type==2&phase==1&blocked_side_continuetime>=2", duration = 24000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20012) - Top-Pick -> Skill-detail(skill-id = 201672, name = "Top Pick", description = "Slightly increase velocity when engaged in a challenge mid-race. (Dirt)", group = Just(Top-Pick), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "ground_type==2&phase==1&blocked_side_continuetime>=2", duration = 24000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20011) - Lead-the-Charge -> Skill-detail(skill-id = 201681, name = "Lead the Charge!", description = "Prepare to aim for the front late-race. (Dirt)", group = Just(Forward-March), rarity = Rare, group-rate = 2, grade-value = 394, wit-check = True, activations = [Activation(precondition = "", condition = "ground_type==2&phase_random==2", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Lane-Speed(350.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Accel(3000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 140, icon-id = 20052) - Forward-March -> Skill-detail(skill-id = 201682, name = "Forward, March!", description = "Moderately prepare to aim for the front late-race. (Dirt)", group = Just(Forward-March), rarity = Common, group-rate = 1, grade-value = 174, wit-check = True, activations = [Activation(precondition = "", condition = "ground_type==2&phase_random==2", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Lane-Speed(250.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Accel(2000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 140, icon-id = 20051) - Lie-in-Wait -> Skill-detail(skill-id = 201691, name = "Lie in Wait", description = "Recover endurance when positioned toward the back upon approaching mid-race. (Late Surger)", group = Just(Be-Still), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==3&phase_laterhalf_random==0&order_rate>=50", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(550.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20022) - Be-Still -> Skill-detail(skill-id = 201692, name = "Be Still", description = "Slightly recover endurance when positioned toward the back upon approaching mid-race. (Late Surger)", group = Just(Be-Still), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==3&phase_laterhalf_random==0&order_rate>=50", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(150.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20021) - Come-What-May -> Skill-detail(skill-id = 201701, name = "Come What May", description = "Increase velocity when well-positioned on a straight in the last spurt. (Medium)", group = Just(All-I-ve-Got), rarity = Rare, group-rate = 2, grade-value = 508, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==3&is_lastspurt==1&corner==0&order_rate>=20&order_rate<=60", duration = 24000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20012) - All-I-ve-Got -> Skill-detail(skill-id = 201702, name = "All I've Got", description = "Slightly increase velocity when well-positioned on a straight in the last spurt. (Medium)", group = Just(All-I-ve-Got), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "distance_type==3&is_lastspurt==1&corner==0&order_rate>=20&order_rate<=60", duration = 24000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 160, icon-id = 20011) - Nail-Art -> Skill-detail(skill-id = 201801, name = "♡ 3D Nail Art", description = "Moderately decrease performance on firm ground.", group = Nothing, rarity = Common, group-rate = -1, grade-value = -129, wit-check = False, activations = [Activation(precondition = "", condition = "ground_condition==1", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Speed(-400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 50, icon-id = 10014) - Head-On -> Skill-detail(skill-id = 201902, name = "Head-On", description = "Slightly increase acceleration when positioned toward the front late-race. (Pace Chaser)", group = Just(Head-On), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==2&phase_random==2&order_rate<=50", duration = 18000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(2000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20041) - Familiar-Ground -> Skill-detail(skill-id = 202002, name = "Familiar Ground", description = "Slightly recover endurance when positioned toward the back mid-race. (Dirt)", group = Just(Familiar-Ground), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "ground_type==2&phase_random==1&order_rate>=50", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(150.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20021) - Early-Start -> Skill-detail(skill-id = 202022, name = "Early Start", description = "Very slightly increase velocity for a medium duration when positioned toward the back mid-race. (End Closer)", group = Just(Early-Start), rarity = Common, group-rate = 1, grade-value = 217, wit-check = True, activations = [Activation(precondition = "", condition = "running_style==4&phase_random==1&order_rate>=50", duration = 40000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 180, icon-id = 20011) - Risky-Business -> Skill-detail(skill-id = 202032, name = "Risky Business", description = "Moderately increase velocity in the second half of the race, but also greatly increase fatigue sometimes.", group = Just(Risky-Business), rarity = Common, group-rate = 1, grade-value = 129, wit-check = True, activations = [Activation(precondition = "", condition = "distance_rate_after_random==50", duration = 18000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =HP(-10000.decimal(-4)), value-usage =Multiply-Random, target =Self),]),], sp-cost = 120, icon-id = 20011) - Runaway -> Skill-detail(skill-id = 202051, name = "Runaway", description = "Attempt to gain an especially large lead and keep it until the finish. (Front Runner)", group = Nothing, rarity = Rare, group-rate = 2, grade-value = 370, wit-check = False, activations = [Activation(precondition = "", condition = "running_style==1", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Great-Escape, value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 40012) - Burning-Spirit-SPD -> Skill-detail(skill-id = 210011, name = "Burning Spirit SPD", description = "Burn bright with team spirit, increasing velocity in proportion to the total Speed of racing team members mid-race.", group = Just(Ignited-Spirit-SPD), rarity = Rare, group-rate = 2, grade-value = 633, wit-check = True, activations = [Activation(precondition = "", condition = "phase_random==1", duration = 18000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Team-Speed, target =Self),]),], sp-cost = 200, icon-id = 20102) - Ignited-Spirit-SPD -> Skill-detail(skill-id = 210012, name = "Ignited Spirit SPD", description = "Burn bright with team spirit, slightly increasing velocity in proportion to the total Speed of racing team members mid-race.", group = Just(Ignited-Spirit-SPD), rarity = Common, group-rate = 1, grade-value = 263, wit-check = True, activations = [Activation(precondition = "", condition = "phase_random==1", duration = 18000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Team-Speed, target =Self),]),], sp-cost = 200, icon-id = 20101) - Burning-Spirit-STA -> Skill-detail(skill-id = 210021, name = "Burning Spirit STA", description = "Burn bright with team spirit, recovering endurance in proportion to the total Stamina of racing team members mid-race.", group = Just(Ignited-Spirit-STA), rarity = Rare, group-rate = 2, grade-value = 633, wit-check = True, activations = [Activation(precondition = "", condition = "phase_random==1", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(550.decimal(-4)), value-usage =Team-Stamina, target =Self),]),], sp-cost = 200, icon-id = 20112) - Ignited-Spirit-STA -> Skill-detail(skill-id = 210022, name = "Ignited Spirit STA", description = "Burn bright with team spirit, slightly recovering endurance in proportion to the total Stamina of racing team members mid-race.", group = Just(Ignited-Spirit-STA), rarity = Common, group-rate = 1, grade-value = 263, wit-check = True, activations = [Activation(precondition = "", condition = "phase_random==1", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(150.decimal(-4)), value-usage =Team-Stamina, target =Self),]),], sp-cost = 200, icon-id = 20111) - Burning-Spirit-PWR -> Skill-detail(skill-id = 210031, name = "Burning Spirit PWR", description = "Burn bright with team spirit, increasing acceleration in proportion to the total Power of racing team members late-race.", group = Just(Ignited-Spirit-PWR), rarity = Rare, group-rate = 2, grade-value = 633, wit-check = True, activations = [Activation(precondition = "", condition = "phase_random==2", duration = 12000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(4000.decimal(-4)), value-usage =Team-Power, target =Self),]),], sp-cost = 200, icon-id = 20122) - Ignited-Spirit-PWR -> Skill-detail(skill-id = 210032, name = "Ignited Spirit PWR", description = "Burn bright with team spirit, slightly increasing acceleration in proportion to the total Power of racing team members late-race.", group = Just(Ignited-Spirit-PWR), rarity = Common, group-rate = 1, grade-value = 263, wit-check = True, activations = [Activation(precondition = "", condition = "phase_random==2", duration = 12000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(2000.decimal(-4)), value-usage =Team-Power, target =Self),]),], sp-cost = 200, icon-id = 20121) - Burning-Spirit-GUTS -> Skill-detail(skill-id = 210041, name = "Burning Spirit GUTS", description = "Burn bright with team spirit, increasing vigor in proportion to the total Guts of racing team members late-race.", group = Just(Ignited-Spirit-GUTS), rarity = Rare, group-rate = 2, grade-value = 633, wit-check = True, activations = [Activation(precondition = "", condition = "phase_random==2", duration = 18000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Team-Guts, target =Self),Ability(ability-type =Accel(3000.decimal(-4)), value-usage =Team-Guts, target =Self),]),], sp-cost = 200, icon-id = 20102) - Ignited-Spirit-GUTS -> Skill-detail(skill-id = 210042, name = "Ignited Spirit GUTS", description = "Burn bright with team spirit, very slightly increasing vigor in proportion to the total Guts of racing team members late-race.", group = Just(Ignited-Spirit-GUTS), rarity = Common, group-rate = 1, grade-value = 263, wit-check = True, activations = [Activation(precondition = "", condition = "phase_random==2", duration = 18000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(500.decimal(-4)), value-usage =Team-Guts, target =Self),Ability(ability-type =Accel(1000.decimal(-4)), value-usage =Team-Guts, target =Self),]),], sp-cost = 200, icon-id = 20101) - Burning-Spirit-WIT -> Skill-detail(skill-id = 210051, name = "Burning Spirit WIT", description = "Burn bright with team spirit, increasing strategic navigation for a medium duration in proportion to the total Wit of racing team members early-race.", group = Just(Ignited-Spirit-WIT), rarity = Rare, group-rate = 2, grade-value = 633, wit-check = True, activations = [Activation(precondition = "", condition = "phase_random==0", duration = 40000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Lane-Speed(350.decimal(-4)), value-usage =Team-Wit, target =Self),Ability(ability-type =Vision(150000.decimal(-4)), value-usage =Team-Wit, target =Self),]),], sp-cost = 200, icon-id = 20132) - Ignited-Spirit-WIT -> Skill-detail(skill-id = 210052, name = "Ignited Spirit WIT", description = "Burn bright with team spirit, slightly increasing strategic navigation for a medium duration in proportion to the total Wit of racing team members early-race.", group = Just(Ignited-Spirit-WIT), rarity = Common, group-rate = 1, grade-value = 263, wit-check = True, activations = [Activation(precondition = "", condition = "phase_random==0", duration = 40000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Lane-Speed(150.decimal(-4)), value-usage =Team-Wit, target =Self),Ability(ability-type =Vision(50000.decimal(-4)), value-usage =Team-Wit, target =Self),]),], sp-cost = 200, icon-id = 20131) - Unquenched-Thirst -> Skill-detail(skill-id = 300011, name = "Unquenched Thirst", description = "Moderately increase performance with the desire to race.", group = Just(Unquenched-Thirst), rarity = Common, group-rate = 1, grade-value = 0, wit-check = False, activations = [Activation(precondition = "", condition = "track_id==10008", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Stamina(400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 10021) - Unchanging -> Skill-detail(skill-id = 300021, name = "Unchanging", description = "Greatly increase performance with the same ambition of days past.", group = Just(Unchanging), rarity = Rare, group-rate = 1, grade-value = 0, wit-check = False, activations = [Activation(precondition = "", condition = "season==4", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Speed(800000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 10012) - Towards-the-Scenery-I-Seek -> Skill-detail(skill-id = 300031, name = "Towards the Scenery I Seek", description = "Moderately increase performance in pursuit of that long sought-after scenery.", group = Just(Towards-the-Scenery-I-Seek), rarity = Common, group-rate = 1, grade-value = 0, wit-check = False, activations = [Activation(precondition = "", condition = "always==1", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Speed(400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 10011) - Creeping-Anxiety -> Skill-detail(skill-id = 300041, name = "Creeping Anxiety", description = "Moderately decrease performance due to Trainer's anxiety.", group = Just(Creeping-Anxiety), rarity = Common, group-rate = 1, grade-value = 0, wit-check = False, activations = [Activation(precondition = "", condition = "always==1", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Speed(-400000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 10014) - Blatant-Fear -> Skill-detail(skill-id = 300051, name = "Blatant Fear", description = "Greatly decrease velocity on a corner in the second half of the race due to Trainer's obvious anxiety.", group = Just(Blatant-Fear), rarity = Rare, group-rate = 1, grade-value = 0, wit-check = False, activations = [Activation(precondition = "", condition = "remain_distance>=800&remain_distance<=850", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Current-Speed(-3000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20015) - Dream-Run -> Skill-detail(skill-id = 300061, name = "Dream Run", description = "Increase velocity on the final straight due to a strong desire to cross the finish line carrying everyone's hopes and dreams.", group = Just(Dream-Run), rarity = Rare, group-rate = 1, grade-value = 0, wit-check = False, activations = [Activation(precondition = "", condition = "is_finalcorner==1&corner==0", duration = 50000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(3500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 0, icon-id = 20012) - Show-Me-What-Lies-Beyond -> Skill-detail(skill-id = 300071, name = "Show Me What Lies Beyond!", description = "Moderately increase Silence Suzuka's performance thanks to the desire to see her running reach new heights.", group = Just(Show-Me-What-Lies-Beyond), rarity = Common, group-rate = 1, grade-value = 0, wit-check = False, activations = [Activation(precondition = "", condition = "is_exist_chara_id==1002", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Speed(400000.decimal(-4)), value-usage =Direct, target =),]),], sp-cost = 0, icon-id = 10011) - Hoiya-Have-a-Good-Run -> Skill-detail(skill-id = 300081, name = "Hoiya! Have a Good Run!", description = "Moderately increase Silence Suzuka's performance thanks to a charm that guarantees a satisfying run.", group = Just(Hoiya-Have-a-Good-Run), rarity = Common, group-rate = 1, grade-value = 0, wit-check = False, activations = [Activation(precondition = "", condition = "is_exist_chara_id==1002", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Stamina(400000.decimal(-4)), value-usage =Direct, target =),]),], sp-cost = 0, icon-id = 10021) - As-a-Friend-and-Rival -> Skill-detail(skill-id = 300091, name = "As a Friend and Rival", description = "Moderately increase Silence Suzuka's performance through the happiness felt seeing a friend find their running style.", group = Just(As-a-Friend-and-Rival), rarity = Common, group-rate = 1, grade-value = 0, wit-check = False, activations = [Activation(precondition = "", condition = "is_exist_chara_id==1002", duration = -1.decimal, cooldown = 0.decimal, abilities = [Ability(ability-type =Passive-Power(400000.decimal(-4)), value-usage =Direct, target =),]),], sp-cost = 0, icon-id = 10031) - Cheers-of-a-Fellow-Dreamer -> Skill-detail(skill-id = 300101, name = "Cheers of a Fellow Dreamer", description = "Recover Silence Suzuka's endurance on a corner in the second half of the race through a friend's cheers of support.", group = Just(Cheers-of-a-Fellow-Dreamer), rarity = Rare, group-rate = 1, grade-value = 0, wit-check = False, activations = [Activation(precondition = "", condition = "is_exist_chara_id==1002&remain_distance_viewer_id>=800&remain_distance_viewer_id<=850", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(550.decimal(-4)), value-usage =Direct, target =),]),], sp-cost = 0, icon-id = 20022) - Shooting-Star-Inherit -> Skill-detail(skill-id = 900011, name = "Shooting Star", description = "Slightly increase velocity and very minimally increase acceleration after passing another runner toward the front late-race.", group = Just(Shooting-Star), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "phase>=2&order>=1&order_rate<=50&change_order_onetime<0", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Accel(500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - The-View-from-the-Lead-Is-Mine-Inherit -> Skill-detail(skill-id = 900021, name = "The View from the Lead Is Mine!", description = "Slightly increase velocity when in the lead by a fair margin in the second half of the race.", group = Just(The-View-from-the-Lead-Is-Mine), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "distance_rate>=50&order==1&bashin_diff_behind>=1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - Sky-High-Teio-Step-Inherit -> Skill-detail(skill-id = 900031, name = "Sky-High Teio Step", description = "Moderately increase velocity when closing the gap to runners ahead on the final straight.", group = Just(Sky-High-Teio-Step), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "is_finalcorner==1&corner==0&order<=3&bashin_diff_infront<=1&is_overtake==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - Red-Shift-LP1211-M-Inherit -> Skill-detail(skill-id = 900041, name = "Red Shift/LP1211-M", description = "Slightly increase acceleration when positioned toward the front on the final corner or later.", group = Just(Red-Shift-LP1211-M), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "is_finalcorner==1&order<=5&order_rate<=50", duration = 24000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(2000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20041) - Lights-of-Vaudeville-Inherit -> Skill-detail(skill-id = 900051, name = "Lights of Vaudeville", description = "Moderately increase velocity when just breaking out of the pack toward the front on the final straight.", group = Just(Lights-of-Vaudeville), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "is_finalcorner==1&corner==0&order_rate<=30&behind_near_lane_time_set1>=1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - Triumphant-Pulse-Inherit -> Skill-detail(skill-id = 900061, name = "Triumphant Pulse", description = "Moderately increase ability to break out of the pack when positioned toward the front with 200m remaining.", group = Just(Triumphant-Pulse), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "order>=2&order<=5&order_rate<=50&remain_distance<=201&remain_distance>=199", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - Anchors-Aweigh-Inherit -> Skill-detail(skill-id = 900071, name = "Anchors Aweigh!", description = "Very slightly increase velocity steadily with a long spurt starting halfway through the race.", group = Just(Anchors-Aweigh), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "distance_rate>=50&distance_rate<=60&order_rate>50", duration = 36000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - Cut-and-Drive-Inherit -> Skill-detail(skill-id = 900081, name = "Cut and Drive!", description = "Slightly increase velocity when positioned toward the front with 200m or less remaining.", group = Just(Cut-and-Drive), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "order>=3&order_rate<=50&remain_distance<=200&bashin_diff_infront<=1@order>=3&order_rate<=50&remain_distance<=200&bashin_diff_behind<=1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - Resplendent-Red-Ace-Inherit -> Skill-detail(skill-id = 900091, name = "Resplendent Red Ace", description = "Very slightly swell with the determination to be number one when positioned toward the front in the second half of the race.", group = Just(Resplendent-Red-Ace), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "distance_rate>=50&order==1&bashin_diff_behind<=1@distance_rate>=50&order==2&is_overtake==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Accel(1000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - Shooting-for-Victory-Inherit -> Skill-detail(skill-id = 900101, name = "Shooting for Victory!", description = "Slightly increase acceleration when well-positioned upon approaching the final straight.", group = Just(Shooting-for-Victory), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "is_finalcorner_laterhalf==1&corner!=0&order>=3&order_rate<=40", duration = 24000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(2000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20041) - Where-Theres-a-Will-Theres-a-Way-Inherit -> Skill-detail(skill-id = 900111, name = "Where There's a Will, There's a Way", description = "Slightly increase velocity when passing another runner toward the back on the final straight.", group = Just(Where-Theres-a-Will-Theres-a-Way), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "is_finalcorner==1&corner==0&change_order_onetime<0&order>=3", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - You-and-Me-One-on-One-Inherit -> Skill-detail(skill-id = 900121, name = "You and Me! One-on-One!", description = "Slightly increase velocity on the final straight after passing another runner on the outside toward the back on the final corner or later.", group = Just(You-and-Me-One-on-One), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "is_finalcorner==1&is_behind_in==1&change_order_onetime<0&order_rate>=40", condition = "is_finalcorner==1&corner==0", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - The-Duty-of-Dignity-Calls-Inherit -> Skill-detail(skill-id = 900131, name = "The Duty of Dignity Calls", description = "Slightly increase velocity when positioned toward the front on the final corner.", group = Just(The-Duty-of-Dignity-Calls), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "is_finalcorner==1&corner!=0&distance_diff_rate<=30", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - Victoria-por-plancha-Inherit -> Skill-detail(skill-id = 900141, name = "Victoria por plancha ☆", description = "Very slightly hang on to the advantage when positioned toward the front with energy to spare on the final straight.", group = Just(Victoria-por-plancha), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "is_finalcorner==1&corner==0&hp_per>=30&order<=2", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Accel(1000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - This-Dance-Is-for-Vittoria-Inherit -> Skill-detail(skill-id = 900151, name = "This Dance Is for Vittoria!", description = "Slightly increase velocity when positioned toward the front and close to the runner ahead or behind on the final corner or later.", group = Just(This-Dance-Is-for-Vittoria), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "is_finalcorner==1&bashin_diff_behind<=1&order<=4@is_finalcorner==1&bashin_diff_infront<=1&order<=4", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - Shadow-Break-Inherit -> Skill-detail(skill-id = 900161, name = "Shadow Break", description = "Slightly increase velocity when passing another runner on the outside on the final corner or later. If the skill user engaged in a challenge mid-race, moderately increase velocity instead.", group = Just(Shadow-Break), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "phase==1&blocked_side_continuetime>=2", condition = "is_finalcorner==1&order>=2&order_rate<=75&is_behind_in==1&change_order_onetime<0", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),]),Activation(precondition = "", condition = "is_finalcorner==1&order>=2&order_rate<=75&is_behind_in==1&change_order_onetime<0", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - Behold-Thine-Emperors-Divine-Might-Inherit -> Skill-detail(skill-id = 900171, name = "Behold Thine Emperor's Divine Might", description = "Moderately increase velocity on the final straight after passing another runner 3 times late-race.", group = Just(Behold-Thine-Emperors-Divine-Might), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "is_finalcorner==1&change_order_up_end_after>=3&corner==0", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - Blazing-Pride-Inherit -> Skill-detail(skill-id = 900181, name = "Blazing Pride", description = "Slightly increase velocity when passing another runner from midpack or further back on the final corner.", group = Just(Blazing-Pride), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "is_finalcorner==1&corner!=0&order>=3&change_order_onetime<0", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - OMG-The-Final-Sprint-Inherit -> Skill-detail(skill-id = 900191, name = "OMG! (゚∀゚) The Final Sprint! ☆", description = "Slightly increase velocity and navigation after passing another runner 2 times late-race.", group = Just(OMG-The-Final-Sprint), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "change_order_up_end_after>=2", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Lane-Speed(150.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - Angling-and-Scheming-Inherit -> Skill-detail(skill-id = 900201, name = "Angling and Scheming", description = "Slightly increase acceleration when in the lead on a corner late-race.", group = Just(Angling-and-Scheming), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "phase>=2&corner!=0&order==1", duration = 24000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(2000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20041) - White-Lightning-Comin-Through-Inherit -> Skill-detail(skill-id = 900211, name = "White Lightning Comin' Through!", description = "Slightly bolt down the track when well-positioned or aiming for the front from midpack on a straight in the second half of the race.", group = Just(White-Lightning-Comin-Through), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "distance_rate>=50&corner==0&order_rate>=70&order_rate<=75&is_overtake==1@distance_rate>=50&corner==0&order_rate<=30&order_rate>=20", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Accel(500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - Fairy-Tale-Inherit -> Skill-detail(skill-id = 900221, name = "Fairy Tale", description = "Slightly increase velocity when engaged in a challenge while well-positioned in the second half of the race.", group = Just(Fairy-Tale), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "distance_rate>=50&order>=2&order_rate<=40&blocked_side_continuetime>=2", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - Win-QED-Inherit -> Skill-detail(skill-id = 900231, name = "∴win Q.E.D.", description = "Slightly increase velocity when passing another runner toward the front on the final corner or later.", group = Just(Win-QED), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "is_finalcorner==1&change_order_onetime<0&order<=4", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - Flashy-Landing-Inherit -> Skill-detail(skill-id = 900241, name = "Flashy☆Landing", description = "Very slightly increase ability to break out of the pack on the straight after engaging in a challenge toward the front on the final corner or later.", group = Just(Flashy-Landing), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "is_finalcorner==1&blocked_side_continuetime>=2&order<=3", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Accel(1000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - Chasing-After-You-Inherit -> Skill-detail(skill-id = 900251, name = "Chasing After You", description = "Very slightly increase velocity steadily and very minimally intimidate runners ahead when in midpack in the second half of the race.", group = Just(Chasing-After-You), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "distance_rate>=50&order_rate>=40&order_rate<=70", duration = 36000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Current-Speed(-250.decimal(-4)), value-usage =Direct, target =Ahead(5)),]),], sp-cost = 200, icon-id = 20011) - G00-First-FInfinity-Inherit -> Skill-detail(skill-id = 900261, name = "G00 1st. F∞;", description = "Slightly increase velocity when positioned toward the front after making it to the final straight without faltering.", group = Just(G00-First-FInfinity), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "is_badstart==0&temptation_count==0&order<=3&is_finalcorner==1&corner==0", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - Lets-Pump-Some-Iron-Inherit -> Skill-detail(skill-id = 900271, name = "Let's Pump Some Iron!", description = "Slightly increase acceleration in an attempt to move up on a corner late-race.", group = Just(Lets-Pump-Some-Iron), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "phase>=2&corner!=0&order_rate>=65&order_rate<=70", duration = 24000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(2000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20041) - YUMMY-SPEED-Inherit -> Skill-detail(skill-id = 900281, name = "YUMMY☆SPEED!", description = "Very slightly kick forward when moderately tired while well-positioned halfway through the race.", group = Just(YUMMY-SPEED), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "distance_rate>=45&distance_rate<=60&order>=3&order_rate<=50&hp_per<=70", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Accel(1000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - Blue-Rose-Closer-Inherit -> Skill-detail(skill-id = 900301, name = "Blue Rose Closer", description = "Slightly increase velocity on the final straight after passing another runner in the front part of the pack on the final corner or later.", group = Just(Blue-Rose-Closer), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "is_finalcorner==1&order<=4&change_order_onetime<0", condition = "is_finalcorner==1&corner==0", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - U-ma2-Inherit -> Skill-detail(skill-id = 900321, name = "U=ma2", description = "Slightly recover endurance and very slightly increase velocity for a moderate duration when sitting off the pace on a corner in the second half of the race.", group = Just(U-ma2), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "distance_rate>=50&corner!=0&order>=3&order_rate<=40", duration = 24000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(150.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Target-Speed(500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20021) - Our-Ticket-to-Win-Inherit -> Skill-detail(skill-id = 900351, name = "Our Ticket to Win!", description = "Slightly increase velocity when positioned toward the front on the final straight after engaging in a challenge on the final corner or later.", group = Just(Our-Ticket-to-Win), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "is_finalcorner==1&blocked_side_continuetime>=2", condition = "is_finalcorner==1&corner==0&order<=5", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - Schwarzes-Schwert-Inherit -> Skill-detail(skill-id = 900371, name = "Schwarzes Schwert", description = "Slightly increase velocity in a dash for the lead after running calmly and according to plan up until the final straight.", group = Just(Schwarzes-Schwert), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "is_badstart==0&temptation_count==0&order>=3&is_finalcorner==1&corner==0", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - LookatCurren-Inherit -> Skill-detail(skill-id = 900381, name = "#LookatCurren", description = "Very slightly begin to advance when passing another runner while well-positioned around halfway through the race.", group = Just(LookatCurren), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "distance_rate>=50&distance_rate<=65&order>=2&order_rate<=40&change_order_onetime<0", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Accel(1000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - A-Princess-Must-Seize-Victory-Inherit -> Skill-detail(skill-id = 900391, name = "A Princess Must Seize Victory!", description = "Slightly increase velocity when engaged in a challenge on the final straight.", group = Just(A-Princess-Must-Seize-Victory), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "is_finalcorner==1&corner==0&blocked_side_continuetime>=2", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - KEEP-IT-REAL-Inherit -> Skill-detail(skill-id = 900401, name = "KEEP IT REAL.", description = "Very slightly increase acceleration steadily when starting to make a move from midpack in the second half of the race.", group = Just(KEEP-IT-REAL), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "distance_rate>=50&order_rate>=40&order_rate<=70&is_overtake==1", duration = 36000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(1000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20041) - Genius-x-Bakushin-Victory-Inherit -> Skill-detail(skill-id = 900411, name = "Genius x Bakushin = Victory", description = "Slightly increase velocity when engaged in a challenge toward the front in the second half of the race.", group = Just(Genius-x-Bakushin-Victory), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "distance_rate>=50&order<=3&blocked_side_continuetime>=2", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - Pure-Heart-Inherit -> Skill-detail(skill-id = 900451, name = "Pure Heart", description = "Moderately recover endurance when well-positioned mid-race.", group = Just(Pure-Heart), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "phase_random==1&order>=2&order_rate<=40", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(350.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20021) - SPARKLY-STARDOM-Inherit -> Skill-detail(skill-id = 900461, name = "SPARKLY☆STARDOM", description = "Become very slightly empowered to keep the advantage when positioned toward the front and close to the runner behind on a straight mid-race.", group = Just(SPARKLY-STARDOM), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "phase==1&corner==0&order<=2&bashin_diff_behind<=1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Accel(1000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - Pop-and-Polish-Inherit -> Skill-detail(skill-id = 900481, name = "Pop & Polish", description = "Slightly increase velocity when pressured by or passing another runner while well-positioned on the final straight.", group = Just(Pop-and-Polish), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "is_finalcorner==1&corner==0&order>=2&order_rate<=30&overtake_target_time>=2@is_finalcorner==1&corner==0&order_rate<=20&change_order_onetime<0", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - Nemesis-Inherit -> Skill-detail(skill-id = 900501, name = "Nemesis", description = "Slightly increase velocity when moving up from midpack on the final corner or later.", group = Just(Nemesis), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "is_finalcorner==1&order_rate>=40&order_rate<=75&is_overtake==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - Super-Duper-Climax-Inherit -> Skill-detail(skill-id = 900521, name = "Super-Duper Climax", description = "Slightly recover endurance with a glance at nearby runners when positioned toward the back on the final corner.", group = Just(Super-Duper-Climax), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "is_finalcorner==1&corner!=0&order_rate>50&near_count>=1", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(150.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20021) - I-See-Victory-in-My-Future-Inherit -> Skill-detail(skill-id = 900561, name = "I See Victory in My Future!", description = "Slightly clear a path forward depending on divination results when the way ahead is jammed late-race.", group = Just(I-See-Victory-in-My-Future), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "phase>=2&order>=3&blocked_front==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Accel(500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - I-Never-Goof-Up-Inherit -> Skill-detail(skill-id = 900581, name = "I Never Goof Up!", description = "Very slightly aim for the front when passing another runner from midpack or further back on a corner late-race.", group = Just(I-Never-Goof-Up), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "phase>=2&corner!=0&order>=3&change_order_onetime<0", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Accel(1000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - Moving-Past-and-Beyond-Inherit -> Skill-detail(skill-id = 900591, name = "Moving Past, and Beyond", description = "Having run the race calmly, slightly increase acceleration when making a move mid-race, or on a crucial corner late-race whilst in midpack.", group = Just(Moving-Past-and-Beyond), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "phase>=2&corner!=0&is_finalcorner==0&temptation_count==0&order_rate>=50&order_rate<=70@phase==1&corner!=0&is_finalcorner==1&temptation_count==0&order_rate>=50&order_rate<=70", duration = 24000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(2000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20041) - Just-a-Little-Farther-Inherit -> Skill-detail(skill-id = 900601, name = "Just a Little Farther!", description = "Slightly increase velocity when positioned 3rd and about to lose late-race.", group = Just(Just-a-Little-Farther), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "phase>=2&order==3&bashin_diff_behind<=1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - Prideful-King-Inherit -> Skill-detail(skill-id = 900611, name = "Prideful King", description = "Moderately increase velocity in a true display of skill with 200m remaining after racing calmly.", group = Just(Prideful-King), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "temptation_count==0&remain_distance<=201&remain_distance>=199&order>=4&order_rate<=70", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - Dazzl-n-Diver-Inherit -> Skill-detail(skill-id = 910011, name = "Dazzl'n ♪ Diver", description = "Slightly recover endurance after activating 2 skills mid-race.", group = Just(Dazzl-n-Diver), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "phase==1&order>=2&order_rate<=70&activate_count_middle>=2", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(150.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20021) - Certain-Victory-Inherit -> Skill-detail(skill-id = 910031, name = "Certain Victory", description = "Moderately increase velocity on the final straight after being on the heels of another runner toward the front on the final corner or later.", group = Just(Certain-Victory), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "is_finalcorner==1&is_overtake==1&order<=5&order_rate<=50&overtake_target_no_order_up_time>=2", condition = "is_finalcorner==1&corner==0", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(2500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - A-Kiss-for-Courage-Inherit -> Skill-detail(skill-id = 910041, name = "A Kiss for Courage", description = "Slightly increase velocity when positioned toward the front in the second half of the race after recovering endurance with a skill.", group = Just(A-Kiss-for-Courage), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "distance_rate>=50&activate_count_heal>=1&order<=3", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - Festive-Miracle-Inherit -> Skill-detail(skill-id = 910061, name = "Festive Miracle", description = "Very slightly control breathing and kick forward toward victory in the second half of the race after recovering endurance with skills at least 3 times.", group = Just(Festive-Miracle), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "activate_count_heal>=3&distance_rate>=50", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Accel(1000.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =HP(50.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - Superior-Heal-Inherit -> Skill-detail(skill-id = 910111, name = "Superior Heal", description = "Moderately recover endurance when overtaken toward the back mid-race.", group = Just(Superior-Heal), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "phase==1&change_order_onetime>0&order_rate>=40", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(350.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20021) - Legacy-of-the-Strong-Inherit -> Skill-detail(skill-id = 910131, name = "Legacy of the Strong", description = "Slightly increase velocity continuously when pressured by another runner and running out of energy toward the front on the final corner or later.", group = Just(Legacy-of-the-Strong), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "is_finalcorner==1&hp_per<=45&order<=3&order_rate<=50&bashin_diff_behind<=1&overtake_target_time>=1", duration = 36000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - Condors-Fury-Inherit -> Skill-detail(skill-id = 910141, name = "Condor's Fury", description = "Slightly increase acceleration when aiming for the front from midpack on the final corner.", group = Just(Condors-Fury), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "is_finalcorner==1&corner!=0&is_overtake==1&order>=4&order_rate<=75", duration = 24000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(2000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20041) - Arrows-Whistle-Shadows-Disperse-Inherit -> Skill-detail(skill-id = 910171, name = "Arrows Whistle, Shadows Disperse", description = "Slightly increase velocity when pressured by another runner in the front part of the pack on the final corner or later.", group = Just(Arrows-Whistle-Shadows-Disperse), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "is_finalcorner==1&order_rate<=40&overtake_target_time>=2", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - Eternal-Moments-Inherit -> Skill-detail(skill-id = 910181, name = "Eternal Moments", description = "Slightly increase velocity when starting to make a move from a position toward the front mid-race.", group = Just(Eternal-Moments), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "phase==1&order>=3&order_rate<=50&is_overtake==1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - Presents-from-X-Inherit -> Skill-detail(skill-id = 910231, name = "Presents from X", description = "Slightly increase velocity mid-race after staying well-positioned from the start of the race up until the second half.", group = Just(Presents-from-X), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "order_rate_in40_continue==1&phase==1&distance_rate>=50&order>=2&order_rate<=40", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - Flowery-Maneuver-Inherit -> Skill-detail(skill-id = 910241, name = "Flowery☆Maneuver", description = "Slightly increase velocity when passing another runner toward the front on the final corner. If passing toward the back, slightly increase acceleration instead.", group = Just(Flowery-Maneuver), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "is_finalcorner==1&corner!=0&order_rate<=40&change_order_onetime<0", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),Activation(precondition = "", condition = "is_finalcorner==1&corner!=0&order_rate>=50&order_rate<=80&change_order_onetime<0", duration = 24000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Accel(2000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - Every-Rose-Has-Its-Fangs-Inherit -> Skill-detail(skill-id = 910301, name = "Every Rose Has Its Fangs", description = "Slightly drain endurance from runners ahead when well-positioned and pressured by another runner mid-race.", group = Just(Every-Rose-Has-Its-Fangs), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "phase==1&order>=2&order_rate<=50&overtake_target_time>=1", duration = 0.decimal, cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =HP(150.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =HP(-25.decimal(-4)), value-usage =Direct, target =Ahead(18)),]),], sp-cost = 200, icon-id = 20021) - Dancing-in-the-Leaves-Inherit -> Skill-detail(skill-id = 910401, name = "Dancing in the Leaves", description = "Very slightly increase ability to break out of the pack when engaged in a challenge in midpack on the final corner.", group = Just(Dancing-in-the-Leaves), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "is_finalcorner==1&corner!=0&order_rate>=30&order_rate<=70&blocked_side_continuetime>=2", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Accel(1000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - Give-Mummy-a-Hug-Inherit -> Skill-detail(skill-id = 910451, name = "Give Mummy a Hug ♡", description = "Very slightly increase ability to break out of the pack when well-positioned and close to the runner ahead on the final straight.", group = Just(Give-Mummy-a-Hug), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "is_finalcorner==1&corner==0&order<=4&bashin_diff_infront<=1", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(500.decimal(-4)), value-usage =Direct, target =Self),Ability(ability-type =Accel(1000.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - Bountiful-Harvest-Inherit -> Skill-detail(skill-id = 910561, name = "Bountiful Harvest", description = "Slightly increase velocity with a surge of fortune when pressured by another runner toward the back in the second half of the race.", group = Just(Bountiful-Harvest), rarity = Common, group-rate = 2, grade-value = 180, wit-check = True, activations = [Activation(precondition = "", condition = "distance_rate>=50&order_rate>=40&overtake_target_time>=2", duration = 30000.decimal(-4), cooldown = 5000000.decimal(-4), abilities = [Ability(ability-type =Target-Speed(1500.decimal(-4)), value-usage =Direct, target =Self),]),], sp-cost = 200, icon-id = 20011) - -// Details about a skill. -pub struct skill-detail - skill-id: int - name: string - description: string - group: maybe - rarity: rarity - group-rate: int - grade-value: int - wit-check: bool - activations: list - sp-cost: int - icon-id: int - -// Automatically generated. -// Shows a string representation of the `skill-detail` type. -pub fun skill-detail/show(this : skill-detail) : e string - match this - Skill-detail(skill-id, name, description, group, rarity, group-rate, grade-value, wit-check, activations, sp-cost, icon-id) -> "Skill-detail(skill-id: " ++ skill-id.show ++ ", name: " ++ name.show ++ ", description: " ++ description.show ++ ", group: " ++ group.show ++ ", rarity: " ++ rarity.show ++ ", group-rate: " ++ group-rate.show ++ ", grade-value: " ++ grade-value.show ++ ", wit-check: " ++ wit-check.show ++ ", activations: " ++ activations.show ++ ", sp-cost: " ++ sp-cost.show ++ ", icon-id: " ++ icon-id.show ++ ")" - -// Skill rarity. -pub type rarity - Common // white - Rare // gold - Unique-Low // 1*/2* unique - Unique-Upgraded // 3*+ unique on a trainee upgraded from 1*/2* - Unique // base 3* unique - -pub fun rarity/show(r: rarity): string - match r - Common -> "Common" - Rare -> "Rare" - Unique-Low -> "Unique (1\u2606/2\u2606)" - Unique-Upgraded -> "Unique (3\u2606+ from 1\u2606/2\u2606 upgraded)" - Unique -> "Unique (3\u2606+)" - -// Condition and precondition logic. -pub alias condition = string - -// Activation conditions and effects. -// A skill has one or two activations. -pub struct activation - precondition: condition - condition: condition - duration: decimal // seconds - cooldown: decimal // seconds - abilities: list // one to three elements - -pub fun activation/show(a: activation): string - match a - Activation("", condition, duration, _, abilities) | duration <= 0.decimal -> condition ++ " -> " ++ abilities.show - Activation("", condition, duration, cooldown, abilities) | cooldown >= 500.decimal -> condition ++ " -> " ++ abilities.show ++ " for " ++ duration.show ++ "s" - Activation("", condition, duration, cooldown, abilities) -> condition ++ " -> " ++ abilities.show ++ " for " ++ duration.show ++ "s on " ++ cooldown.show ++ "s cooldown" - Activation(precondition, condition, duration, _, abilities) | duration <= 0.decimal -> precondition ++ " -> " ++ condition ++ " -> " ++ abilities.show - Activation(precondition, condition, duration, cooldown, abilities) | cooldown >= 500.decimal -> precondition ++ " -> " ++ condition ++ " -> " ++ abilities.show ++ " for " ++ duration.show ++ "s" - Activation(precondition, condition, duration, cooldown, abilities) -> precondition ++ "-> " ++ condition ++ " -> " ++ abilities.show ++ " for " ++ duration.show ++ "s on " ++ cooldown.show ++ "s cooldown" - -// Effects of activating a skill. -pub struct ability - ability-type: ability-type - value-usage: value-usage - target: target - -pub fun ability/show(a: ability): string - match a - Ability(t, Direct, Self) -> t.show - Ability(t, Direct, target) -> t.show ++ " " ++ target.show - Ability(t, v, Self) -> t.show ++ " scaling by " ++ v.show - Ability(t, v, target) -> t.show ++ " " ++ target.show ++ " scaling by " ++ v.show - -// Target of a skill activation effect. -pub type ability-type - Passive-Speed(bonus: decimal) - Passive-Stamina(bonus: decimal) - Passive-Power(bonus: decimal) - Passive-Guts(bonus: decimal) - Passive-Wit(bonus: decimal) - Great-Escape - Vision(bonus: decimal) - HP(rate: decimal) - Gate-Delay(rate: decimal) - Frenzy(add: decimal) - Current-Speed(rate: decimal) - Target-Speed(rate: decimal) - Lane-Speed(rate: decimal) - Accel(rate: decimal) - Lane-Change(rate: decimal) - -pub fun ability-type/show(a: ability-type): string - match a - Passive-Speed(bonus) -> "passive " ++ bonus.show ++ " Speed" - Passive-Stamina(bonus) -> "passive " ++ bonus.show ++ " Stamina" - Passive-Power(bonus) -> "passive " ++ bonus.show ++ " Power" - Passive-Guts(bonus) -> "passive " ++ bonus.show ++ " Guts" - Passive-Wit(bonus) -> "passive " ++ bonus.show ++ " Wit" - Great-Escape -> "enable Great Escape style" - Vision(bonus) -> bonus.show ++ " vision" - HP(rate) | rate >= 0.decimal -> show(rate * 100.decimal) ++ "% HP recovery" - HP(rate) -> show(rate * 100.decimal) ++ "% HP loss" - Gate-Delay(rate) -> rate.show ++ "× gate delay" - Frenzy(add) -> add.show ++ "s longer Rushed" - Current-Speed(rate) -> show(rate * 100.decimal) ++ "% current speed" - Target-Speed(rate) -> show(rate * 100.decimal) ++ "% target speed" - Lane-Speed(rate) -> show(rate * 100.decimal) ++ "% lane speed" - Accel(rate) -> show(rate * 100.decimal) ++ "% acceleration" - Lane-Change(rate) -> rate.show ++ " course width movement" - -// Special scaling for skill activation effects. -pub type value-usage - Direct - Team-Speed - Team-Stamina - Team-Power - Team-Guts - Team-Wit - Multiply-Random - -pub fun value-usage/show(v: value-usage): string - match v - Direct -> "no scaling" - Team-Speed -> "team's Speed" - Team-Stamina -> "team's Stamina" - Team-Power -> "team's Power" - Team-Guts -> "team's Guts" - Team-Wit -> "team's Wit" - Multiply-Random -> "random multiplier (0×, 0.02×, or 0.04×)" - -// Who a skill activation targets. -pub type target - Self - In-View - Ahead(limit: int) - Behind(limit: int) - Style(style: style) - Rushing-Ahead(limit: int) - Rushing-Behind(limit: int) - Rushing-Style(style: style) - -pub fun target/show(t: target): string - match t - Self -> "self" - In-View -> "others in field of view" - Ahead(limit) | limit >= 18 -> "others ahead" - Ahead(limit) -> "next " ++ limit.show ++ " others ahead" - Behind(limit) | limit >= 18 -> "others behind" - Behind(limit) -> "next " ++ limit.show ++ " others behind" - Style(Front-Runner) -> "other Front Runners" - Style(Pace-Chaser) -> "other Pace Chasers" - Style(Late-Surger) -> "other Late Surgers" - Style(End-Closer) -> "other End Closers" - Rushing-Ahead(limit) | limit >= 18 -> "others rushing ahead" - Rushing-Ahead(limit) -> "next " ++ limit.show ++ " others rushing ahead" - Rushing-Behind(limit) | limit >= 18 -> "others rushing behind" - Rushing-Behind(limit) -> "next " ++ limit.show ++ " others rushing behind" - Rushing-Style(Front-Runner) -> "rushing Front Runners" - Rushing-Style(Pace-Chaser) -> "rushing Pace Chasers" - Rushing-Style(Late-Surger) -> "rushing Late Surgers" - Rushing-Style(End-Closer) -> "rushing End Closers" - -// Running style for skill targets. -pub type style - Front-Runner - Pace-Chaser - Late-Surger - End-Closer \ No newline at end of file +// Get the list of skills in a skill group. +pub fun skill-group/skills(sg: skill-group-id): list + match sg.game-id + 1007 -> [Skill-id(10071), ] + 1008 -> [Skill-id(10081), ] + 1009 -> [Skill-id(10091), ] + 1011 -> [Skill-id(10111), ] + 1014 -> [Skill-id(10141), ] + 1018 -> [Skill-id(10181), ] + 1024 -> [Skill-id(10241), ] + 1027 -> [Skill-id(10271), ] + 1032 -> [Skill-id(10321), ] + 1035 -> [Skill-id(10351), ] + 1041 -> [Skill-id(10411), ] + 1045 -> [Skill-id(10451), ] + 1052 -> [Skill-id(10521), ] + 1056 -> [Skill-id(10561), ] + 1060 -> [Skill-id(10601), ] + 1061 -> [Skill-id(10611), ] + 10001 -> [Skill-id(100011), Skill-id(900011), ] + 10002 -> [Skill-id(100021), Skill-id(900021), ] + 10003 -> [Skill-id(100031), Skill-id(900031), ] + 10004 -> [Skill-id(100041), Skill-id(900041), ] + 10005 -> [Skill-id(100051), Skill-id(900051), ] + 10006 -> [Skill-id(100061), Skill-id(900061), ] + 10007 -> [Skill-id(100071), Skill-id(900071), ] + 10008 -> [Skill-id(100081), Skill-id(900081), ] + 10009 -> [Skill-id(100091), Skill-id(900091), ] + 10010 -> [Skill-id(100101), Skill-id(900101), ] + 10011 -> [Skill-id(100111), Skill-id(900111), ] + 10012 -> [Skill-id(100121), Skill-id(900121), ] + 10013 -> [Skill-id(100131), Skill-id(900131), ] + 10014 -> [Skill-id(100141), Skill-id(900141), ] + 10015 -> [Skill-id(100151), Skill-id(900151), ] + 10016 -> [Skill-id(100161), Skill-id(900161), ] + 10017 -> [Skill-id(100171), Skill-id(900171), ] + 10018 -> [Skill-id(100181), Skill-id(900181), ] + 10019 -> [Skill-id(100191), Skill-id(900191), ] + 10020 -> [Skill-id(100201), Skill-id(900201), ] + 10021 -> [Skill-id(100211), Skill-id(900211), ] + 10022 -> [Skill-id(100221), Skill-id(900221), ] + 10023 -> [Skill-id(100231), Skill-id(900231), ] + 10024 -> [Skill-id(100241), Skill-id(900241), ] + 10025 -> [Skill-id(100251), Skill-id(900251), ] + 10026 -> [Skill-id(100261), Skill-id(900261), ] + 10027 -> [Skill-id(100271), Skill-id(900271), ] + 10028 -> [Skill-id(100281), Skill-id(900281), ] + 10030 -> [Skill-id(100301), Skill-id(900301), ] + 10032 -> [Skill-id(100321), Skill-id(900321), ] + 10035 -> [Skill-id(100351), Skill-id(900351), ] + 10037 -> [Skill-id(100371), Skill-id(900371), ] + 10038 -> [Skill-id(100381), Skill-id(900381), ] + 10039 -> [Skill-id(100391), Skill-id(900391), ] + 10040 -> [Skill-id(100401), Skill-id(900401), ] + 10041 -> [Skill-id(100411), Skill-id(900411), ] + 10045 -> [Skill-id(100451), Skill-id(900451), ] + 10046 -> [Skill-id(100461), Skill-id(900461), ] + 10048 -> [Skill-id(100481), Skill-id(900481), ] + 10050 -> [Skill-id(100501), Skill-id(900501), ] + 10052 -> [Skill-id(100521), Skill-id(900521), ] + 10056 -> [Skill-id(100561), Skill-id(900561), ] + 10058 -> [Skill-id(100581), Skill-id(900581), ] + 10059 -> [Skill-id(100591), Skill-id(900591), ] + 10060 -> [Skill-id(100601), Skill-id(900601), ] + 10061 -> [Skill-id(100611), Skill-id(900611), ] + 11001 -> [Skill-id(110011), Skill-id(910011), ] + 11003 -> [Skill-id(110031), Skill-id(910031), ] + 11004 -> [Skill-id(110041), Skill-id(910041), ] + 11006 -> [Skill-id(110061), Skill-id(910061), ] + 11011 -> [Skill-id(110111), Skill-id(910111), ] + 11013 -> [Skill-id(110131), Skill-id(910131), ] + 11014 -> [Skill-id(110141), Skill-id(910141), ] + 11017 -> [Skill-id(110171), Skill-id(910171), ] + 11018 -> [Skill-id(110181), Skill-id(910181), ] + 11023 -> [Skill-id(110231), Skill-id(910231), ] + 11024 -> [Skill-id(110241), Skill-id(910241), ] + 11030 -> [Skill-id(110301), Skill-id(910301), ] + 11040 -> [Skill-id(110401), Skill-id(910401), ] + 11045 -> [Skill-id(110451), Skill-id(910451), ] + 11056 -> [Skill-id(110561), Skill-id(910561), ] + 20001 -> [Skill-id(200011), Skill-id(200012), Skill-id(200013), ] + 20002 -> [Skill-id(200021), Skill-id(200022), Skill-id(200023), ] + 20003 -> [Skill-id(200031), Skill-id(200032), Skill-id(200033), ] + 20004 -> [Skill-id(200041), Skill-id(200042), Skill-id(200043), ] + 20005 -> [Skill-id(200051), Skill-id(200052), Skill-id(200053), ] + 20006 -> [Skill-id(200061), Skill-id(200062), Skill-id(200063), Skill-id(200064), ] + 20007 -> [Skill-id(200071), Skill-id(200072), Skill-id(200073), ] + 20008 -> [Skill-id(200081), Skill-id(200082), Skill-id(200083), ] + 20009 -> [Skill-id(200091), Skill-id(200092), Skill-id(200093), ] + 20010 -> [Skill-id(200101), Skill-id(200102), Skill-id(200103), ] + 20011 -> [Skill-id(200111), Skill-id(200112), Skill-id(200113), ] + 20012 -> [Skill-id(200121), Skill-id(200122), Skill-id(200123), ] + 20013 -> [Skill-id(200131), Skill-id(200132), Skill-id(200133), ] + 20014 -> [Skill-id(200141), Skill-id(200142), Skill-id(200143), ] + 20015 -> [Skill-id(200151), Skill-id(200152), Skill-id(200153), ] + 20016 -> [Skill-id(200161), Skill-id(200162), Skill-id(200163), ] + 20017 -> [Skill-id(200171), Skill-id(200172), Skill-id(200173), ] + 20018 -> [Skill-id(200181), Skill-id(200182), Skill-id(200183), ] + 20019 -> [Skill-id(200191), Skill-id(200192), Skill-id(200193), Skill-id(200194), ] + 20020 -> [Skill-id(200201), Skill-id(200202), Skill-id(200203), ] + 20021 -> [Skill-id(200211), Skill-id(200212), ] + 20022 -> [Skill-id(200221), Skill-id(200222), ] + 20023 -> [Skill-id(200231), Skill-id(200232), Skill-id(200233), ] + 20024 -> [Skill-id(200241), Skill-id(200242), ] + 20025 -> [Skill-id(200251), Skill-id(200252), Skill-id(200253), ] + 20026 -> [Skill-id(200261), Skill-id(200262), Skill-id(200263), ] + 20027 -> [Skill-id(200271), Skill-id(200272), ] + 20028 -> [Skill-id(200281), Skill-id(200282), Skill-id(200283), ] + 20029 -> [Skill-id(200291), Skill-id(200292), ] + 20030 -> [Skill-id(200301), Skill-id(200302), ] + 20033 -> [Skill-id(200331), Skill-id(200332), Skill-id(200333), ] + 20034 -> [Skill-id(200341), Skill-id(200342), Skill-id(200343), ] + 20035 -> [Skill-id(200351), Skill-id(200352), Skill-id(200353), ] + 20036 -> [Skill-id(200361), Skill-id(200362), ] + 20037 -> [Skill-id(200371), Skill-id(200372), ] + 20038 -> [Skill-id(200381), Skill-id(200382), ] + 20043 -> [Skill-id(200431), Skill-id(200432), Skill-id(200433), ] + 20044 -> [Skill-id(200441), Skill-id(200442), ] + 20045 -> [Skill-id(200451), Skill-id(200452), ] + 20046 -> [Skill-id(200461), Skill-id(200462), ] + 20047 -> [Skill-id(200471), Skill-id(200472), ] + 20048 -> [Skill-id(200481), Skill-id(200482), ] + 20049 -> [Skill-id(200491), Skill-id(200492), ] + 20050 -> [Skill-id(200501), Skill-id(200502), ] + 20051 -> [Skill-id(200511), Skill-id(200512), ] + 20053 -> [Skill-id(200531), Skill-id(200532), ] + 20054 -> [Skill-id(200541), Skill-id(200542), ] + 20055 -> [Skill-id(200551), Skill-id(200552), ] + 20056 -> [Skill-id(200561), Skill-id(200562), ] + 20057 -> [Skill-id(200571), Skill-id(200572), ] + 20058 -> [Skill-id(200581), Skill-id(200582), ] + 20059 -> [Skill-id(200591), Skill-id(200592), ] + 20060 -> [Skill-id(200601), Skill-id(200602), ] + 20061 -> [Skill-id(200611), Skill-id(200612), ] + 20062 -> [Skill-id(200621), Skill-id(200622), ] + 20063 -> [Skill-id(200631), Skill-id(200632), ] + 20064 -> [Skill-id(200641), Skill-id(200642), ] + 20065 -> [Skill-id(200651), Skill-id(200652), ] + 20066 -> [Skill-id(200662), ] + 20067 -> [Skill-id(200671), Skill-id(200672), ] + 20068 -> [Skill-id(200681), Skill-id(200682), ] + 20069 -> [Skill-id(200691), Skill-id(200692), ] + 20070 -> [Skill-id(200701), Skill-id(200702), ] + 20071 -> [Skill-id(200711), Skill-id(200712), ] + 20072 -> [Skill-id(200721), Skill-id(200722), ] + 20073 -> [Skill-id(200731), Skill-id(200732), ] + 20074 -> [Skill-id(200741), Skill-id(200742), ] + 20075 -> [Skill-id(200751), Skill-id(200752), ] + 20076 -> [Skill-id(200761), Skill-id(200762), ] + 20077 -> [Skill-id(200771), Skill-id(200772), ] + 20078 -> [Skill-id(200781), ] + 20079 -> [Skill-id(200791), ] + 20080 -> [Skill-id(200801), ] + 20081 -> [Skill-id(200811), ] + 20082 -> [Skill-id(200821), ] + 20083 -> [Skill-id(200831), ] + 20084 -> [Skill-id(200841), ] + 20085 -> [Skill-id(200851), ] + 20086 -> [Skill-id(200861), ] + 20087 -> [Skill-id(200871), ] + 20088 -> [Skill-id(200881), ] + 20089 -> [Skill-id(200891), ] + 20090 -> [Skill-id(200901), ] + 20091 -> [Skill-id(200911), ] + 20092 -> [Skill-id(200921), ] + 20093 -> [Skill-id(200931), ] + 20094 -> [Skill-id(200941), ] + 20095 -> [Skill-id(200951), Skill-id(200952), Skill-id(200953), ] + 20096 -> [Skill-id(200961), Skill-id(200962), ] + 20097 -> [Skill-id(200971), Skill-id(200972), ] + 20098 -> [Skill-id(200981), Skill-id(200982), ] + 20099 -> [Skill-id(200991), Skill-id(200992), ] + 20100 -> [Skill-id(201001), Skill-id(201002), ] + 20101 -> [Skill-id(201011), Skill-id(201012), ] + 20102 -> [Skill-id(201021), Skill-id(201022), ] + 20103 -> [Skill-id(201031), Skill-id(201032), ] + 20104 -> [Skill-id(201041), Skill-id(201042), ] + 20105 -> [Skill-id(201051), Skill-id(201052), ] + 20106 -> [Skill-id(201061), Skill-id(201062), ] + 20107 -> [Skill-id(201071), Skill-id(201072), ] + 20108 -> [Skill-id(201081), Skill-id(201082), ] + 20109 -> [Skill-id(201091), Skill-id(201092), ] + 20110 -> [Skill-id(201101), Skill-id(201102), ] + 20111 -> [Skill-id(201111), Skill-id(201112), ] + 20112 -> [Skill-id(201121), Skill-id(201122), ] + 20113 -> [Skill-id(201131), Skill-id(201132), ] + 20114 -> [Skill-id(201141), Skill-id(201142), ] + 20115 -> [Skill-id(201151), Skill-id(201152), ] + 20116 -> [Skill-id(201161), Skill-id(201162), ] + 20117 -> [Skill-id(201171), Skill-id(201172), ] + 20118 -> [Skill-id(201181), Skill-id(201182), ] + 20119 -> [Skill-id(201191), Skill-id(201192), ] + 20120 -> [Skill-id(201201), Skill-id(201202), ] + 20121 -> [Skill-id(201211), Skill-id(201212), ] + 20122 -> [Skill-id(201221), Skill-id(201222), ] + 20123 -> [Skill-id(201231), Skill-id(201232), ] + 20124 -> [Skill-id(201241), Skill-id(201242), ] + 20125 -> [Skill-id(201251), Skill-id(201252), ] + 20126 -> [Skill-id(201261), Skill-id(201262), ] + 20127 -> [Skill-id(201272), ] + 20128 -> [Skill-id(201281), Skill-id(201282), ] + 20129 -> [Skill-id(201291), Skill-id(201292), ] + 20130 -> [Skill-id(201302), ] + 20131 -> [Skill-id(201311), Skill-id(201312), ] + 20132 -> [Skill-id(201321), Skill-id(201322), ] + 20133 -> [Skill-id(201331), Skill-id(201332), ] + 20134 -> [Skill-id(201341), Skill-id(201342), ] + 20135 -> [Skill-id(201351), Skill-id(201352), ] + 20136 -> [Skill-id(201361), Skill-id(201362), ] + 20137 -> [Skill-id(201371), Skill-id(201372), ] + 20138 -> [Skill-id(201381), Skill-id(201382), ] + 20139 -> [Skill-id(201391), Skill-id(201392), ] + 20140 -> [Skill-id(201401), Skill-id(201402), ] + 20141 -> [Skill-id(201411), Skill-id(201412), ] + 20142 -> [Skill-id(201421), Skill-id(201422), ] + 20143 -> [Skill-id(201431), Skill-id(201432), ] + 20144 -> [Skill-id(201441), Skill-id(201442), ] + 20145 -> [Skill-id(201451), Skill-id(201452), ] + 20146 -> [Skill-id(201461), Skill-id(201462), ] + 20147 -> [Skill-id(201471), Skill-id(201472), ] + 20148 -> [Skill-id(201481), Skill-id(201482), ] + 20149 -> [Skill-id(201491), Skill-id(201492), ] + 20150 -> [Skill-id(201501), Skill-id(201502), ] + 20151 -> [Skill-id(201511), Skill-id(201512), ] + 20152 -> [Skill-id(201521), Skill-id(201522), ] + 20153 -> [Skill-id(201531), Skill-id(201532), ] + 20154 -> [Skill-id(201541), Skill-id(201542), ] + 20155 -> [Skill-id(201551), Skill-id(201552), ] + 20156 -> [Skill-id(201561), Skill-id(201562), ] + 20157 -> [Skill-id(201571), ] + 20158 -> [Skill-id(201581), ] + 20159 -> [Skill-id(201591), Skill-id(201592), ] + 20160 -> [Skill-id(201601), ] + 20161 -> [Skill-id(201611), Skill-id(201612), ] + 20162 -> [Skill-id(201621), ] + 20163 -> [Skill-id(201631), ] + 20164 -> [Skill-id(201641), ] + 20165 -> [Skill-id(201651), ] + 20166 -> [Skill-id(201661), ] + 20167 -> [Skill-id(201671), Skill-id(201672), ] + 20168 -> [Skill-id(201681), Skill-id(201682), ] + 20169 -> [Skill-id(201691), Skill-id(201692), ] + 20170 -> [Skill-id(201701), Skill-id(201702), ] + 20190 -> [Skill-id(201902), ] + 20200 -> [Skill-id(202002), ] + 20202 -> [Skill-id(202022), ] + 20203 -> [Skill-id(202032), ] + 21001 -> [Skill-id(210011), Skill-id(210012), ] + 21002 -> [Skill-id(210021), Skill-id(210022), ] + 21003 -> [Skill-id(210031), Skill-id(210032), ] + 21004 -> [Skill-id(210041), Skill-id(210042), ] + 21005 -> [Skill-id(210051), Skill-id(210052), ] + 30001 -> [Skill-id(300011), ] + 30002 -> [Skill-id(300021), ] + 30003 -> [Skill-id(300031), ] + 30004 -> [Skill-id(300041), ] + 30005 -> [Skill-id(300051), ] + 30006 -> [Skill-id(300061), ] + 30007 -> [Skill-id(300071), ] + 30008 -> [Skill-id(300081), ] + 30009 -> [Skill-id(300091), ] + 30010 -> [Skill-id(300101), ] + _ -> Nil \ No newline at end of file diff --git a/horse/movement.kk b/horse/movement.kk new file mode 100644 index 0000000..b7a56f7 --- /dev/null +++ b/horse/movement.kk @@ -0,0 +1,104 @@ +module horse/movement + +// Running styles. +pub type style + Front-Runner + Pace-Chaser + Late-Surger + End-Closer + +// Automatically generated. +// Equality comparison of the `style` type. +pub fun style/(==)(this : style, other : style) : e bool + match (this, other) + (Front-Runner, Front-Runner) -> True + (Pace-Chaser, Pace-Chaser) -> True + (Late-Surger, Late-Surger) -> True + (End-Closer, End-Closer) -> True + (_, _) -> False + +// Shows a string representation of the `style` type. +pub fun style/show(this : style) : e string + match this + Front-Runner -> "Front Runner" + Pace-Chaser -> "Pace Chaser" + Late-Surger -> "Late Surger" + End-Closer -> "End Closer" + +// Starting aptitude levels. +pub type level + G + F + E + D + C + B + A + S + +// Automatically generated. +// Comparison of the `level` type. +pub fun level/cmp(this : level, other : level) : e order + match (this, other) + (G, G) -> Eq + (G, _) -> Lt + (_, G) -> Gt + (F, F) -> Eq + (F, _) -> Lt + (_, F) -> Gt + (E, E) -> Eq + (E, _) -> Lt + (_, E) -> Gt + (D, D) -> Eq + (D, _) -> Lt + (_, D) -> Gt + (C, C) -> Eq + (C, _) -> Lt + (_, C) -> Gt + (B, B) -> Eq + (B, _) -> Lt + (_, B) -> Gt + (A, A) -> Eq + (A, _) -> Lt + (_, A) -> Gt + (S, S) -> Eq + +// Automatically generated. +// Fip comparison of the `level` type. +pub fun level/order2(this : level, other : level) : order2 + match (this, other) + (G, G) -> Eq2(G) + (G, other') -> Lt2(G, other') + (this', G) -> Gt2(G, this') + (F, F) -> Eq2(F) + (F, other') -> Lt2(F, other') + (this', F) -> Gt2(F, this') + (E, E) -> Eq2(E) + (E, other') -> Lt2(E, other') + (this', E) -> Gt2(E, this') + (D, D) -> Eq2(D) + (D, other') -> Lt2(D, other') + (this', D) -> Gt2(D, this') + (C, C) -> Eq2(C) + (C, other') -> Lt2(C, other') + (this', C) -> Gt2(C, this') + (B, B) -> Eq2(B) + (B, other') -> Lt2(B, other') + (this', B) -> Gt2(B, this') + (A, A) -> Eq2(A) + (A, other') -> Lt2(A, other') + (this', A) -> Gt2(A, this') + (S, S) -> Eq2(S) + +// Automatically generated. +// Shows a string representation of the `level` type. +pub fun level/show(this : level) : string + match this + G -> "G" + F -> "F" + E -> "E" + D -> "D" + C -> "C" + B -> "B" + A -> "A" + S -> "S" diff --git a/horse/skill.kk b/horse/skill.kk new file mode 100644 index 0000000..0b672f9 --- /dev/null +++ b/horse/skill.kk @@ -0,0 +1,226 @@ +module horse/skill + +// This module contains skill-related definitions +// common to all versions of the game. + +import std/num/decimal +import horse/game-id +import horse/movement + +// Full details about a skill. +pub struct skill-detail + skill-id: skill-id + name: string + description: string + group-id: skill-group-id + rarity: rarity + group-rate: int + grade-value: int + wit-check: bool + activations: list + owner: maybe + sp-cost: int + icon-id: skill-icon-id + +pub fun detail( + s: skill-id, + ?skill/show: (skill-id) -> string, + ?skill/description: (skill-id) -> string, + ?skill/group: (skill-id) -> skill-group-id, + ?skill/rarity: (skill-id) -> rarity, + ?skill/group-rate: (skill-id) -> int, + ?skill/grade-value: (skill-id) -> int, + ?skill/wit-check: (skill-id) -> bool, + ?skill/activations: (skill-id) -> list, + ?skill/unique-owner: (skill-id) -> maybe, + ?skill/sp-cost: (skill-id) -> int, + ?skill/icon-id: (skill-id) -> skill-icon-id +): skill-detail + Skill-detail( + s, + s.show, + s.description, + s.group, + s.rarity, + s.group-rate, + s.grade-value, + s.wit-check, + s.activations, + s.unique-owner, + s.sp-cost, + s.icon-id + ) + +pub fun skill-detail/show(d: skill-detail, ?character/show: (character-id) -> string, ?trainee/show: (trainee-id) -> string): string + val Skill-detail(Skill-id(id), name, desc, _, rarity, _, grade-value, wit-check, activations, owner, sp-cost, _) = d + val r = name ++ " (ID " ++ id.show ++ "): " ++ desc ++ " " ++ activations.map(activation/show).join(". ") ++ (if wit-check then ". Wit check. " else ". No wit check. ") ++ rarity.show ++ " costing " ++ sp-cost.show ++ " SP, worth " ++ grade-value.show ++ " grade value." + match owner + Nothing -> r + Just(owner-id) -> match owner-id.show + "" -> r ++ " Unique skill of trainee with ID " ++ owner-id.show ++ "." + owner-name -> r ++ " Unique skill of " ++ owner-name ++ "." + +// Skill rarity levels. +pub type rarity + Common // white + Rare // gold + Unique-Low // 1*/2* unique + Unique-Upgraded // 3*+ unique on a trainee upgraded from 1*/2* + Unique // base 3* unique + +pub fun rarity/show(r: rarity): string + match r + Common -> "Common" + Rare -> "Rare" + Unique-Low -> "Unique (1\u2606/2\u2606)" + Unique-Upgraded -> "Unique (3\u2606+ from 1\u2606/2\u2606 upgraded)" + Unique -> "Unique (3\u2606+)" + +// Condition and precondition logic. +pub alias condition = string + +// Activation conditions and effects. +// A skill has one or two activations. +pub struct activation + precondition: condition + condition: condition + duration: decimal // seconds + cooldown: decimal // seconds + abilities: list // one to three elements + +pub fun activation/show(a: activation, ?character/show: (character-id) -> string): string + match a + Activation("", condition, duration, _, abilities) | !duration.is-pos -> condition ++ " -> " ++ abilities.show + Activation("", condition, duration, cooldown, abilities) | cooldown >= 500.decimal -> condition ++ " -> for " ++ duration.show ++ "s, " ++ abilities.show + Activation("", condition, duration, cooldown, abilities) -> condition ++ " -> for " ++ duration.show ++ "s on " ++ cooldown.show ++ "s cooldown, " ++ abilities.show + Activation(precondition, condition, duration, _, abilities) | !duration.is-pos -> precondition ++ " -> " ++ condition ++ " -> " ++ abilities.show + Activation(precondition, condition, duration, cooldown, abilities) | cooldown >= 500.decimal -> precondition ++ " -> " ++ condition ++ " -> for " ++ duration.show ++ "s, " ++ abilities.show + Activation(precondition, condition, duration, cooldown, abilities) -> precondition ++ " -> " ++ condition ++ " -> for " ++ duration.show ++ "s on " ++ cooldown.show ++ "s cooldown, " ++ abilities.show + +// Effects of activating a skill. +pub struct ability + ability-type: ability-type + value-usage: value-usage + target: target + +pub fun ability/show(a: ability, ?character/show: (character-id) -> string): string + match a + Ability(t, Direct, Self) -> t.show + Ability(t, Direct, target) -> t.show ++ " " ++ target.show + Ability(t, v, Self) -> t.show ++ " " ++ v.show + Ability(t, v, target) -> t.show ++ " " ++ target.show ++ " " ++ v.show + +// Skill ability effects. +pub type ability-type + Passive-Speed(bonus: decimal) + Passive-Stamina(bonus: decimal) + Passive-Power(bonus: decimal) + Passive-Guts(bonus: decimal) + Passive-Wit(bonus: decimal) + Great-Escape + Vision(bonus: decimal) + HP(rate: decimal) + Gate-Delay(rate: decimal) + Frenzy(add: decimal) + Current-Speed(add: decimal) + Target-Speed(add: decimal) + Lane-Speed(add: decimal) + Accel(add: decimal) + Lane-Change(add: decimal) + +pub fun ability-type/show(a: ability-type): string + match a + Passive-Speed(bonus) -> bonus.show ++ " Speed" + Passive-Stamina(bonus) -> bonus.show ++ " Stamina" + Passive-Power(bonus) -> bonus.show ++ " Power" + Passive-Guts(bonus) -> bonus.show ++ " Guts" + Passive-Wit(bonus) -> bonus.show ++ " Wit" + Great-Escape -> "enable Great Escape style" + Vision(bonus) -> bonus.show ++ " vision" + HP(rate) | rate.is-pos -> show(rate * 100.decimal) ++ "% HP recovery" + HP(rate) -> show(rate * 100.decimal) ++ "% HP loss" + Gate-Delay(rate) -> rate.show ++ "× gate delay" + Frenzy(add) -> add.show ++ "s longer Rushed" + Current-Speed(rate) -> rate.show ++ "m/s current speed" + Target-Speed(rate) -> rate.show ++ "m/s target speed" + Lane-Speed(rate) -> rate.show ++ "m/s lane change speed" + Accel(rate) -> rate.show ++ "m/s² acceleration" + Lane-Change(rate) -> rate.show ++ " course width movement" + +// Special scaling types for skill abilities. +pub type value-usage + Direct + Team-Speed + Team-Stamina + Team-Power + Team-Guts + Team-Wit + Multiply-Random + Multiply-Random2 + Climax + Max-Stat + Passive-Count + Front-Distance-Add + Midrace-Side-Block-Time + Speed-Scaling + Speed-Scaling2 + Arc-Global-Potential + Max-Lead-Distance + +pub fun value-usage/show(v: value-usage): string + match v + Direct -> "with no scaling" + Team-Speed -> "scaling with team Speed" + Team-Stamina -> "scaling with team Stamina" + Team-Power -> "scaling with team Power" + Team-Guts -> "scaling with team Guts" + Team-Wit -> "scaling with team Wit" + Multiply-Random -> "scaling with a random multiplier (0×, 0.02×, or 0.04×)" + Multiply-Random2 -> "scaling with a random multiplier (0×, 0.02×, or 0.04×)" + Climax -> "scaling with the number of races won during training" + Max-Stat -> "scaling with the value of the user's highest stat" + Passive-Count -> "scaling with the number of Passive skills activated" + Front-Distance-Add -> "scaling with distance from the leader" + Midrace-Side-Block-Time -> "scaling with mid-race phase blocked side time" + Speed-Scaling -> "scaling with overall speed" + Speed-Scaling2 -> "scaling with overall speed" + Arc-Global-Potential -> "scaling with L'Arc global potential" + Max-Lead-Distance -> "scaling with the distance of the longest lead obtained in the first two thirds of the race" + +// Who a skill ability targets. +pub type target + Self + Sympathizers + In-View + Frontmost(limit: int) + Ahead(limit: int) + Behind(limit: int) + All-Teammates + Style(style: style) + Rushing-Ahead(limit: int) + Rushing-Behind(limit: int) + Rushing-Style(style: style) + Specific-Character(who: character-id) + Triggering + +pub fun target/show(t: target, ?character/show: (character-id) -> string): string + match t + Self -> "self" + Sympathizers -> "others with Sympathy" + In-View -> "others in field of view" + Frontmost(limit) -> "frontmost " ++ limit.show + Ahead(limit) | limit >= 18 -> "others ahead" + Ahead(limit) -> "next " ++ limit.show ++ " others ahead" + Behind(limit) | limit >= 18 -> "others behind" + Behind(limit) -> "next " ++ limit.show ++ " others behind" + All-Teammates -> "all teammates" + Style(s) -> "other " ++ s.show ++ "s" + Rushing-Ahead(limit) | limit >= 18 -> "others rushing ahead" + Rushing-Ahead(limit) -> "next " ++ limit.show ++ " others rushing ahead" + Rushing-Behind(limit) | limit >= 18 -> "others rushing behind" + Rushing-Behind(limit) -> "next " ++ limit.show ++ " others rushing behind" + Rushing-Style(s) -> "rushing " ++ s.show ++ "s" + Specific-Character(who) -> match who.show + "" -> "character with ID " ++ who.show + name -> name + Triggering -> "whosoever triggered this skill" diff --git a/horse/trainee.kk b/horse/trainee.kk index c252851..d1df74a 100644 --- a/horse/trainee.kk +++ b/horse/trainee.kk @@ -1,70 +1,16 @@ module horse/trainee -import std/data/rb-map +import horse/movement -// Aptitudes of an umamusume being trained. -pub struct uma - turf: aptitudes - dirt: aptitudes - sprint: aptitudes - mile: aptitudes - medium: aptitudes - long: aptitudes - front-runner: aptitudes - pace-chaser: aptitudes - late-surger: aptitudes - end-closer: aptitudes - -// Aptitude level distribution. -pub alias aptitudes = rbmap - -// Starting aptitude levels. -pub type level - G - F - E - D - C - B - A - S - -// Automatically generated. -// Fip comparison of the `level` type. -pub fun level/order2(this : level, other : level) : order2 - match (this, other) - (G, G) -> Eq2(G) - (G, other') -> Lt2(G, other') - (this', G) -> Gt2(G, this') - (F, F) -> Eq2(F) - (F, other') -> Lt2(F, other') - (this', F) -> Gt2(F, this') - (E, E) -> Eq2(E) - (E, other') -> Lt2(E, other') - (this', E) -> Gt2(E, this') - (D, D) -> Eq2(D) - (D, other') -> Lt2(D, other') - (this', D) -> Gt2(D, this') - (C, C) -> Eq2(C) - (C, other') -> Lt2(C, other') - (this', C) -> Gt2(C, this') - (B, B) -> Eq2(B) - (B, other') -> Lt2(B, other') - (this', B) -> Gt2(B, this') - (A, A) -> Eq2(A) - (A, other') -> Lt2(A, other') - (this', A) -> Gt2(A, this') - (S, S) -> Eq2(S) - -// Automatically generated. -// Shows a string representation of the `level` type. -pub fun level/show(this : level) : string - match this - G -> "G" - F -> "F" - E -> "E" - D -> "D" - C -> "C" - B -> "B" - A -> "A" - S -> "S" +// Details of a trainee. +pub struct trainee-detail + turf: level + dirt: level + sprint: level + mile: level + medium: level + long: level + front-runner: level + pace-chaser: level + late-surger: level + end-closer: level diff --git a/horsegen/gen.go b/horsegen/gen.go index cc5b116..f8a7cfd 100644 --- a/horsegen/gen.go +++ b/horsegen/gen.go @@ -93,15 +93,6 @@ func ExecSkill(t *template.Template, region string, kk, g io.Writer, groups []Na return err } -func ExecSkillGroupKK(t *template.Template, region string, w io.Writer, g []NamedID[SkillGroup], s []Skill) error { - data := struct { - Region string - Groups []NamedID[SkillGroup] - Skills []Skill - }{region, g, s} - return t.ExecuteTemplate(w, "koka-skill-group", &data) -} - const wordSeps = " ,!?/-+();#○☆♡'=♪∀゚∴" var ( diff --git a/horsegen/load.go b/horsegen/load.go index 3e42e95..0580ff2 100644 --- a/horsegen/load.go +++ b/horsegen/load.go @@ -179,21 +179,22 @@ func SkillGroups(ctx context.Context, db *sqlitex.Pool) ([]NamedID[SkillGroup], } type Skill struct { - ID int - Name string - Description string - GroupID int - GroupName string - Rarity int - GroupRate int - GradeValue int - WitCheck bool - Activations [2]SkillActivation - SPCost int - InheritID int - UniqueOwner string - IconID int - Index int + ID int + Name string + Description string + GroupID int + GroupName string + Rarity int + GroupRate int + GradeValue int + WitCheck bool + Activations [2]SkillActivation + SPCost int + InheritID int + UniqueOwnerID int + UniqueOwner string + IconID int + Index int } type SkillActivation struct { @@ -303,11 +304,12 @@ func Skills(ctx context.Context, db *sqlitex.Pool) ([]Skill, error) { }, }, }, - SPCost: stmt.ColumnInt(47), - InheritID: stmt.ColumnInt(48), - UniqueOwner: stmt.ColumnText(49), - IconID: stmt.ColumnInt(50), - Index: stmt.ColumnInt(51), + SPCost: stmt.ColumnInt(47), + InheritID: stmt.ColumnInt(48), + UniqueOwnerID: stmt.ColumnInt(49), + UniqueOwner: stmt.ColumnText(50), + IconID: stmt.ColumnInt(51), + Index: stmt.ColumnInt(52), } r = append(r, s) } diff --git a/horsegen/main.go b/horsegen/main.go index 426a021..048e43f 100644 --- a/horsegen/main.go +++ b/horsegen/main.go @@ -116,14 +116,6 @@ func main() { slog.Info("write skills") return ExecSkill(t, region, sf, gf, sg, skills) }) - eg.Go(func() error { - sf, err := os.Create(filepath.Join(out, region, "skill-group.kk")) - if err != nil { - return err - } - slog.Info("write skill groups") - return ExecSkillGroupKK(t, region, sf, sg, skills) - }) if err := eg.Wait(); err != nil { slog.Error("generate", slog.Any("err", err)) } else { diff --git a/horsegen/skill.kk.template b/horsegen/skill.kk.template index f8a4c4c..601e88f 100644 --- a/horsegen/skill.kk.template +++ b/horsegen/skill.kk.template @@ -1,347 +1,213 @@ -{{- define "koka-skill-group" -}} -module horse/{{ $.Region }}/skill-group - -// Automatically generated with horsegen; DO NOT EDIT - -// Skill groups. -// A skill group may contain white, circle, double-circle, gold, and purple skills -// for the same effect. -// Sparks that grant skills refer to a skill group. -pub type skill-group - {{- range $g := $.Groups }} - {{ kkenum $g.Name }} - {{- end }} - -// Map a skill group to its ID. -pub fip fun skill-group/group-id(^sg: skill-group): int - match sg - {{- range $g := $.Groups }} - {{ kkenum $g.Name }} -> {{ $g.ID }} - {{- end }} - -// Get the skill group for an ID. -pub fip(1) fun skill-group/from-id(^id: int): maybe - match id - {{- range $g := $.Groups }} - {{ $g.ID }} -> Just( {{- kkenum $g.Name -}} ) - {{- end }} - _ -> Nothing - -// Get the name for a skill group. -// Skill group names are the name of the base skill in the group. -pub fun skill-group/show(sg: skill-group): string - match sg - {{- range $g := $.Groups }} - {{ kkenum $g.Name }} -> {{ printf "%q" $g.Name }} - {{- end }} - -// Compare two skill groups by ID order. -pub fip fun skill-group/order2(a: skill-group, b: skill-group): order2 - match cmp(a.group-id, b.group-id) - Lt -> Lt2(a, b) - Eq -> Eq2(a) - Gt -> Gt2(a, b) - -pub fun skill-group/(==)(a: skill-group, b: skill-group): bool - a.group-id == b.group-id - -{{- end -}} - {{- define "koka-skill" -}} module horse/{{ $.Region }}/skill // Automatically generated with horsegen; DO NOT EDIT +import std/data/rb-map import std/num/decimal -pub import horse/{{ $.Region }}/skill-group +import horse/game-id +import horse/movement +pub import horse/skill -// Skill instances. -pub type skill +val name2id: rbmap = rb-map/empty() {{- range $s := $.Skills }} - {{ kkenum $s.Name }}{{ if ne $s.InheritID 0 }}-Inherit{{ end -}} + .set({{ printf "%q" $s.Name }}{{ if $s.InheritID }} ++ " (Inherited)"{{ end }}, Skill-id({{ $s.ID }})) {{- end }} -// Map a skill to its ID. -pub fip fun skill/skill-id(^s: skill): int - match s - {{- range $s := $.Skills }} - {{ kkenum $s.Name }}{{ if ne $s.InheritID 0 }}-Inherit{{ end }} -> {{ $s.ID }} - {{- end }} +// Get the skill ID that has the given exact name. +// Inherited skills have `" (Inherited)"` appended to their names. +// If no skill matches the ID, the result is an invalid ID. +pub fun from-name(name: string): skill-id + name2id.lookup(name).default(Skill-id(0)) -// Get the skill for an ID. -pub fip(1) fun skill/from-id(^id: int): maybe - match id +// Get the name for a skill. +// Inherited skills have `" (Inherited)"` appended to their names. +// If no skill matches the ID, the result is the numeric ID. +pub fun show(s: skill-id): string + match s.game-id {{- range $s := $.Skills }} - {{ $s.ID }} -> Just( {{- kkenum $s.Name -}}{{ if ne $s.InheritID 0 }}-Inherit{{ end -}} ) + {{ $s.ID }} -> {{ printf "%q" $s.Name }}{{ if $s.InheritID }} ++ " (Inherited)"{{ end }} + {{- end }} + x -> "skill " ++ x.show + +// Get the description for a skill. +// If no skill matches the ID, the result is the empty string. +pub fun description(s: skill-id): string + match s.game-id + {{- range $s := $.Skills }} + {{ $s.ID }} -> {{ printf "%q" $s.Description }} + {{- end }} + _ -> "" + +// Get the skill group ID for a skill. +// If no skill matches the ID, the result is an invalid ID. +pub fun group(s: skill-id): skill-group-id + match s.game-id + {{- range $s := $.Skills }} + {{ $s.ID }} -> Skill-group-id( {{- $s.GroupID -}} ) + {{- end }} + _ -> Skill-group-id(0) + +// Get the rarity of a skill. +// If no skill matches the ID, the result is Common. +pub fun rarity(s: skill-id): rarity + match s.game-id + {{- range $s := $.Skills }} + {{ $s.ID }} -> {{ if eq $s.Rarity 1 }}Common{{ else if eq $s.Rarity 2 }}Rare{{ else if eq $s.Rarity 3 }}Unique-Low{{ else if eq $s.Rarity 4 }}Unique-Upgraded{{ else if eq $s.Rarity 5 }}Unique{{ else }}??? $s.Rarity={{ $s.Rarity }}{{ end }} + {{- end }} + _ -> Common + +// Get the group rate of a skill. +// If no skill matches the ID, the result is 0. +pub fun group-rate(s: skill-id): int + match s.game-id + {{- range $s := $.Skills }} + {{ $s.ID }} -> {{ $s.GroupRate }} + {{- end }} + _ -> 0 + +// Get the grade value of a skill. +// If no skill matches the ID, the result is 0. +pub fun grade-value(s: skill-id): int + match s.game-id + {{- range $s := $.Skills }} + {{ $s.ID }} -> {{ $s.GradeValue }} + {{- end }} + _ -> 0 + +// Get whether a skill is a wit check. +// If no skill matches the ID, the result is False. +pub fun wit-check(s: skill-id): bool + match s.game-id + {{- range $s := $.Skills }} + {{ $s.ID }} -> {{ if $s.WitCheck }}True{{ else }}False{{ end }} + {{- end }} + _ -> False + +// Get the activations of a skill. +// If no skill matches the ID, the result is an empty list. +pub fun activations(s: skill-id): list + match s.game-id + {{- range $s := $.Skills }} + {{ $s.ID }} -> [ + {{- range $a := $s.Activations }} + {{- if $a.Condition }} + Activation( + precondition = {{ printf "%q" $a.Precondition }}, + condition = {{ printf "%q" $a.Condition }}, + duration = {{ $a.Duration }}.decimal{{ if gt $a.Duration 0 }}(-4){{ end }}, + cooldown = {{ $a.Cooldown }}.decimal{{ if gt $a.Cooldown 0 }}(-4){{ end }}, + abilities = [ + {{- range $abil := $a.Abilities }} + {{- if $abil.Type }} + Ability( + ability-type = {{ if eq $abil.Type 1 }}Passive-Speed({{ $abil.Value }}.decimal(-4)) + {{- else if eq $abil.Type 2 }}Passive-Stamina({{ $abil.Value }}.decimal(-4)) + {{- else if eq $abil.Type 3 }}Passive-Power({{ $abil.Value }}.decimal(-4)) + {{- else if eq $abil.Type 4 }}Passive-Guts({{ $abil.Value }}.decimal(-4)) + {{- else if eq $abil.Type 5 }}Passive-Wit({{ $abil.Value }}.decimal(-4)) + {{- else if eq $abil.Type 6 }}Great-Escape + {{- else if eq $abil.Type 8 }}Vision({{ $abil.Value }}.decimal(-4)) + {{- else if eq $abil.Type 9 }}HP({{ $abil.Value }}.decimal(-4)) + {{- else if eq $abil.Type 10 }}Gate-Delay({{ $abil.Value }}.decimal(-4)) + {{- else if eq $abil.Type 13 }}Frenzy({{ $abil.Value }}.decimal(-4)) + {{- else if eq $abil.Type 21 }}Current-Speed({{ $abil.Value }}.decimal(-4)) + {{- else if eq $abil.Type 27 }}Target-Speed({{ $abil.Value }}.decimal(-4)) + {{- else if eq $abil.Type 28 }}Lane-Speed({{ $abil.Value }}.decimal(-4)) + {{- else if eq $abil.Type 31 }}Accel({{ $abil.Value }}.decimal(-4)) + {{- else if eq $abil.Type 35 }}Lane-Change({{ $abil.Value }}.decimal(-4)) + {{- else }}??? $abil.Type={{$abil.Type}} + {{- end }}, + value-usage = {{ if eq $abil.ValueUsage 1 }}Direct + {{- else if eq $abil.ValueUsage 3 }}Team-Speed + {{- else if eq $abil.ValueUsage 4 }}Team-Stamina + {{- else if eq $abil.ValueUsage 5 }}Team-Power + {{- else if eq $abil.ValueUsage 6 }}Team-Guts + {{- else if eq $abil.ValueUsage 7 }}Team-Wit + {{- else if eq $abil.ValueUsage 8 }}Multiply-Random + {{- else if eq $abil.ValueUsage 9 }}Multiply-Random2 + {{- else if eq $abil.ValueUsage 10 }}Climax + {{- else if eq $abil.ValueUsage 13 }}Max-Stat + {{- else if eq $abil.ValueUsage 14 }}Passive-Count + {{- else if eq $abil.ValueUsage 19 }}Front-Distance-Add + {{- else if eq $abil.ValueUsage 20 }}Midrace-Side-Block-Time + {{- else if eq $abil.ValueUsage 22 }}Speed-Scaling + {{- else if eq $abil.ValueUsage 23 }}Speed-Scaling2 + {{- else if eq $abil.ValueUsage 24 }}Arc-Global-Potential + {{- else if eq $abil.ValueUsage 25 }}Max-Lead-Distance + {{- else }}??? $abil.ValueUsage={{ $abil.ValueUsage }} + {{- end }}, + target = {{ if eq $abil.Target 1}}Self + {{- else if eq $abil.Target 4 }}Sympathizers + {{- else if eq $abil.Target 4 }}In-View + {{- else if eq $abil.Target 4 }}Frontmost + {{- else if eq $abil.Target 9 }}Ahead({{ $abil.TargetValue }}) + {{- else if eq $abil.Target 10 }}Behind({{ $abil.TargetValue }}) + {{- else if eq $abil.Target 4 }}All-Teammates + {{- else if eq $abil.Target 18 }}Style({{ if eq $abil.TargetValue 1 }}Front-Runner{{ else if eq $abil.TargetValue 2 }}Pace-Chaser{{ else if eq $abil.TargetValue 3 }}Late-Surger{{ else if eq $abil.TargetValue 4 }}End-Closer{{ else }}??? $abil.TargetValue={{ $abil.TargetValue }}{{ end }}) + {{- else if eq $abil.Target 19 }}Rushing-Ahead({{ $abil.TargetValue }}) + {{- else if eq $abil.Target 20 }}Rushing-Behind({{ $abil.TargetValue }}) + {{- else if eq $abil.Target 21 }}Rushing-Style({{ if eq $abil.TargetValue 1 }}Front-Runner{{ else if eq $abil.TargetValue 2 }}Pace-Chaser{{ else if eq $abil.TargetValue 3 }}Late-Surger{{ else if eq $abil.TargetValue 4 }}End-Closer{{ else }}??? $abil.TargetValue={{ $abil.TargetValue }}{{ end }}) + {{- else if eq $abil.Target 22 }}Specific-Character(Character-id({{ $abil.TargetValue }})) + {{- else if eq $abil.Target 23 }}Triggering + {{- end }} + ), + {{- end }} + {{- end }} + ] + ), + {{- end }} + {{- end }} + ] + {{- end }} + _ -> Nil + +// Get the owner of a unique skill. +// If the skill is not unique, or if there is no skill with the given ID, +// the result is Nothing. +pub fun unique-owner(s: skill-id): maybe + match s.game-id + {{- range $s := $.Skills }} + {{- if $s.UniqueOwnerID }} + {{ $s.ID }} -> Just(Trainee-id({{ $s.UniqueOwnerID }})) + {{- end }} {{- end }} _ -> Nothing -// Get the name of a skill. -// Inherited skills have the same names as their original counterparts. -pub fun skill/show(s: skill): string - match s +// Get the SP cost of a skill. +// If there is no skill with the given ID, the result is 0. +pub fun sp-cost(s: skill-id): int + match s.game-id {{- range $s := $.Skills }} - {{ kkenum $s.Name }}{{ if ne $s.InheritID 0 }}-Inherit{{ end }} -> {{ printf "%q" $s.Name }} + {{ $s.ID }} -> {{ $s.SPCost }} {{- end }} + _ -> 0 -// Compare two skills by ID order. -pub fip fun skill/order2(a: skill, b: skill): order2 - match cmp(a.skill-id, b.skill-id) - Lt -> Lt2(a, b) - Eq -> Eq2(a) - Gt -> Gt2(a, b) +// Get the icon ID of a skill. +// If there is no skill with the given ID, the result is an invalid ID. +pub fun icon-id(s: skill-id): skill-icon-id + match s.game-id + {{- range $s := $.Skills }} + {{ $s.ID }} -> Skill-icon-id({{ $s.IconID }}) + {{- end }} + _ -> Skill-icon-id(0) -pub fun skill/(==)(a: skill, b: skill): bool - a.skill-id == b.skill-id - -// Get the skills in a skill group. -pub fun skill-group/skills(g: skill-group): list - match g +// Get the name for a skill group. +// Skill group names are the name of the base skill in the group. +// If there is no skill group with the given ID, the result is the numeric ID. +pub fun skill-group/show(sg: skill-group-id): string + match sg.game-id {{- range $g := $.Groups }} - {{ kkenum $g.Name }} -> [ {{- range $s := index $.Related $g.ID }}{{ kkenum $s.Name }}{{ if ne $s.InheritID 0 }}-Inherit{{ end }}, {{ end }}] + {{ $g.ID }} -> {{- printf "%q" $g.Name -}} {{- end }} + x -> "skill group " ++ x.show -// Get complete skill info. -pub fun skill/detail(^s: skill): skill-detail - match s - {{- range $s := $.Skills }} - {{ kkenum $s.Name }}{{ if ne $s.InheritID 0 }}-Inherit{{ end }} -> {{ template "kk-render-skill-detail" $s }} +// Get the list of skills in a skill group. +pub fun skill-group/skills(sg: skill-group-id): list + match sg.game-id + {{- range $g := $.Groups }} + {{ $g.ID }} -> [ {{- range $s := index $.Related $g.ID }}Skill-id({{ $s.ID }}), {{ end -}} ] {{- end }} + _ -> Nil -// Details about a skill. -pub struct skill-detail - skill-id: int - name: string - description: string - group: maybe - rarity: rarity - group-rate: int - grade-value: int - wit-check: bool - activations: list - sp-cost: int - icon-id: int - -// Automatically generated. -// Shows a string representation of the `skill-detail` type. -pub fun skill-detail/show(this : skill-detail) : e string - match this - Skill-detail(skill-id, name, description, group, rarity, group-rate, grade-value, wit-check, activations, sp-cost, icon-id) -> "Skill-detail(skill-id: " ++ skill-id.show ++ ", name: " ++ name.show ++ ", description: " ++ description.show ++ ", group: " ++ group.show ++ ", rarity: " ++ rarity.show ++ ", group-rate: " ++ group-rate.show ++ ", grade-value: " ++ grade-value.show ++ ", wit-check: " ++ wit-check.show ++ ", activations: " ++ activations.show ++ ", sp-cost: " ++ sp-cost.show ++ ", icon-id: " ++ icon-id.show ++ ")" - -// Skill rarity. -pub type rarity - Common // white - Rare // gold - Unique-Low // 1*/2* unique - Unique-Upgraded // 3*+ unique on a trainee upgraded from 1*/2* - Unique // base 3* unique - -pub fun rarity/show(r: rarity): string - match r - Common -> "Common" - Rare -> "Rare" - Unique-Low -> "Unique (1\u2606/2\u2606)" - Unique-Upgraded -> "Unique (3\u2606+ from 1\u2606/2\u2606 upgraded)" - Unique -> "Unique (3\u2606+)" - -// Condition and precondition logic. -pub alias condition = string - -// Activation conditions and effects. -// A skill has one or two activations. -pub struct activation - precondition: condition - condition: condition - duration: decimal // seconds - cooldown: decimal // seconds - abilities: list // one to three elements - -pub fun activation/show(a: activation): string - match a - Activation("", condition, duration, _, abilities) | duration <= 0.decimal -> condition ++ " -> " ++ abilities.show - Activation("", condition, duration, cooldown, abilities) | cooldown >= 500.decimal -> condition ++ " -> " ++ abilities.show ++ " for " ++ duration.show ++ "s" - Activation("", condition, duration, cooldown, abilities) -> condition ++ " -> " ++ abilities.show ++ " for " ++ duration.show ++ "s on " ++ cooldown.show ++ "s cooldown" - Activation(precondition, condition, duration, _, abilities) | duration <= 0.decimal -> precondition ++ " -> " ++ condition ++ " -> " ++ abilities.show - Activation(precondition, condition, duration, cooldown, abilities) | cooldown >= 500.decimal -> precondition ++ " -> " ++ condition ++ " -> " ++ abilities.show ++ " for " ++ duration.show ++ "s" - Activation(precondition, condition, duration, cooldown, abilities) -> precondition ++ "-> " ++ condition ++ " -> " ++ abilities.show ++ " for " ++ duration.show ++ "s on " ++ cooldown.show ++ "s cooldown" - -// Effects of activating a skill. -pub struct ability - ability-type: ability-type - value-usage: value-usage - target: target - -pub fun ability/show(a: ability): string - match a - Ability(t, Direct, Self) -> t.show - Ability(t, Direct, target) -> t.show ++ " " ++ target.show - Ability(t, v, Self) -> t.show ++ " scaling by " ++ v.show - Ability(t, v, target) -> t.show ++ " " ++ target.show ++ " scaling by " ++ v.show - -// Target of a skill activation effect. -pub type ability-type - Passive-Speed(bonus: decimal) - Passive-Stamina(bonus: decimal) - Passive-Power(bonus: decimal) - Passive-Guts(bonus: decimal) - Passive-Wit(bonus: decimal) - Great-Escape - Vision(bonus: decimal) - HP(rate: decimal) - Gate-Delay(rate: decimal) - Frenzy(add: decimal) - Current-Speed(rate: decimal) - Target-Speed(rate: decimal) - Lane-Speed(rate: decimal) - Accel(rate: decimal) - Lane-Change(rate: decimal) - -pub fun ability-type/show(a: ability-type): string - match a - Passive-Speed(bonus) -> "passive " ++ bonus.show ++ " Speed" - Passive-Stamina(bonus) -> "passive " ++ bonus.show ++ " Stamina" - Passive-Power(bonus) -> "passive " ++ bonus.show ++ " Power" - Passive-Guts(bonus) -> "passive " ++ bonus.show ++ " Guts" - Passive-Wit(bonus) -> "passive " ++ bonus.show ++ " Wit" - Great-Escape -> "enable Great Escape style" - Vision(bonus) -> bonus.show ++ " vision" - HP(rate) | rate >= 0.decimal -> show(rate * 100.decimal) ++ "% HP recovery" - HP(rate) -> show(rate * 100.decimal) ++ "% HP loss" - Gate-Delay(rate) -> rate.show ++ "× gate delay" - Frenzy(add) -> add.show ++ "s longer Rushed" - Current-Speed(rate) -> show(rate * 100.decimal) ++ "% current speed" - Target-Speed(rate) -> show(rate * 100.decimal) ++ "% target speed" - Lane-Speed(rate) -> show(rate * 100.decimal) ++ "% lane speed" - Accel(rate) -> show(rate * 100.decimal) ++ "% acceleration" - Lane-Change(rate) -> rate.show ++ " course width movement" - -// Special scaling for skill activation effects. -pub type value-usage - Direct - Team-Speed - Team-Stamina - Team-Power - Team-Guts - Team-Wit - Multiply-Random - -pub fun value-usage/show(v: value-usage): string - match v - Direct -> "no scaling" - Team-Speed -> "team's Speed" - Team-Stamina -> "team's Stamina" - Team-Power -> "team's Power" - Team-Guts -> "team's Guts" - Team-Wit -> "team's Wit" - Multiply-Random -> "random multiplier (0×, 0.02×, or 0.04×)" - -// Who a skill activation targets. -pub type target - Self - In-View - Ahead(limit: int) - Behind(limit: int) - Style(style: style) - Rushing-Ahead(limit: int) - Rushing-Behind(limit: int) - Rushing-Style(style: style) - -pub fun target/show(t: target): string - match t - Self -> "self" - In-View -> "others in field of view" - Ahead(limit) | limit >= 18 -> "others ahead" - Ahead(limit) -> "next " ++ limit.show ++ " others ahead" - Behind(limit) | limit >= 18 -> "others behind" - Behind(limit) -> "next " ++ limit.show ++ " others behind" - Style(Front-Runner) -> "other Front Runners" - Style(Pace-Chaser) -> "other Pace Chasers" - Style(Late-Surger) -> "other Late Surgers" - Style(End-Closer) -> "other End Closers" - Rushing-Ahead(limit) | limit >= 18 -> "others rushing ahead" - Rushing-Ahead(limit) -> "next " ++ limit.show ++ " others rushing ahead" - Rushing-Behind(limit) | limit >= 18 -> "others rushing behind" - Rushing-Behind(limit) -> "next " ++ limit.show ++ " others rushing behind" - Rushing-Style(Front-Runner) -> "rushing Front Runners" - Rushing-Style(Pace-Chaser) -> "rushing Pace Chasers" - Rushing-Style(Late-Surger) -> "rushing Late Surgers" - Rushing-Style(End-Closer) -> "rushing End Closers" - -// Running style for skill targets. -{{- /* TODO(zeph): there is definitely a better place for this to live */}} -pub type style - Front-Runner - Pace-Chaser - Late-Surger - End-Closer - -{{- end -}} - -{{ define "kk-render-skill-detail" }} -{{- /* Call with Skill structure as argument. */ -}} -Skill-detail(skill-id = {{ $.ID -}} - , name = {{ printf "%q" $.Name -}} - , description = {{ printf "%q" $.Description -}} - , group = {{ if ne $.GroupName "" }}Just({{ kkenum $.GroupName }}){{ else }}Nothing{{ end -}} - , rarity = {{ if eq $.Rarity 1 }}Common{{ else if eq $.Rarity 2 }}Rare{{ else if eq $.Rarity 3 }}Unique-Low{{ else if eq $.Rarity 4 }}Unique-Upgraded{{ else if eq $.Rarity 5 }}Unique{{ else }}??? $.Rarity={{ $.Rarity }}{{ end -}} - , group-rate = {{ $.GroupRate -}} - , grade-value = {{ $.GradeValue -}} - , wit-check = {{ if $.WitCheck }}True{{ else }}False{{ end -}} - , activations = [ - {{- range $a := $.Activations -}} - {{- if ne $a.Condition "" -}} - Activation(precondition = {{ printf "%q" $a.Precondition -}} - , condition = {{ printf "%q" $a.Condition -}} - , duration = {{ $a.Duration -}}{{ if gt $a.Duration 0 }}.decimal(-4){{ else }}.decimal{{ end -}} - , cooldown = {{ $a.Cooldown -}}{{ if gt $a.Cooldown 0 }}.decimal(-4){{ else }}.decimal{{ end -}} - , abilities = [ - {{- range $abil := $a.Abilities -}} - {{- if ne $abil.Type 0 -}} - Ability(ability-type = - {{- if eq $abil.Type 1 -}}Passive-Speed({{ $abil.Value }}.decimal(-4)) - {{- else if eq $abil.Type 2 -}}Passive-Stamina({{ $abil.Value }}.decimal(-4)) - {{- else if eq $abil.Type 3 -}}Passive-Power({{ $abil.Value }}.decimal(-4)) - {{- else if eq $abil.Type 4 -}}Passive-Guts({{ $abil.Value }}.decimal(-4)) - {{- else if eq $abil.Type 5 -}}Passive-Wit({{ $abil.Value }}.decimal(-4)) - {{- else if eq $abil.Type 6 -}}Great-Escape - {{- else if eq $abil.Type 8 -}}Vision({{ $abil.Value }}.decimal(-4)) - {{- else if eq $abil.Type 9 -}}HP({{ $abil.Value }}.decimal(-4)) - {{- else if eq $abil.Type 10 -}}Gate-Delay({{ $abil.Value }}.decimal(-4)) - {{- else if eq $abil.Type 13 -}}Frenzy({{ $abil.Value }}.decimal(-4)) - {{- else if eq $abil.Type 21 -}}Current-Speed({{ $abil.Value }}.decimal(-4)) - {{- else if eq $abil.Type 27 -}}Target-Speed({{ $abil.Value }}.decimal(-4)) - {{- else if eq $abil.Type 28 -}}Lane-Speed({{ $abil.Value }}.decimal(-4)) - {{- else if eq $abil.Type 31 -}}Accel({{ $abil.Value }}.decimal(-4)) - {{- else if eq $abil.Type 35 -}}Lane-Change({{ $abil.Value }}.decimal(-4)) - {{- else -}}??? $abil.Type={{$abil.Type}} - {{- end -}} - , value-usage = - {{- if eq $abil.ValueUsage 1 -}}Direct - {{- else if eq $abil.ValueUsage 3 -}}Team-Speed - {{- else if eq $abil.ValueUsage 4 -}}Team-Stamina - {{- else if eq $abil.ValueUsage 5 -}}Team-Power - {{- else if eq $abil.ValueUsage 6 -}}Team-Guts - {{- else if eq $abil.ValueUsage 7 -}}Team-Wit - {{- else if eq $abil.ValueUsage 8 -}}Multiply-Random - {{- else -}}??? $abil.ValueUsage={{ $abil.ValueUsage }} - {{- end -}} - , target = - {{- if eq $abil.Target 1 -}}Self - {{- else if eq $abil.Target 4 -}}In-View - {{- else if eq $abil.Target 9 -}}Ahead({{ $abil.TargetValue }}) - {{- else if eq $abil.Target 10 -}}Behind({{ $abil.TargetValue }}) - {{- else if eq $abil.Target 18 -}}Style({{ if eq $abil.TargetValue 1 }}Front-Runner{{ else if eq $abil.TargetValue 2 }}Pace-Chaser{{ else if eq $abil.TargetValue 3 }}Late-Surger{{ else if eq $abil.TargetValue 4 }}End-Closer{{ else }}??? $abil.TargetValue={{ $abil.TargetValue }}{{ end }}) - {{- else if eq $abil.Target 19 -}}Rushing-Ahead({{ $abil.TargetValue }}) - {{- else if eq $abil.Target 20 -}}Rushing-Behind({{ $abil.TargetValue }}) - {{- else if eq $abil.Target 21 -}}Rushing-Style({{ if eq $abil.TargetValue 1 }}Front-Runner{{ else if eq $abil.TargetValue 2 }}Pace-Chaser{{ else if eq $abil.TargetValue 3 }}Late-Surger{{ else if eq $abil.TargetValue 4 }}End-Closer{{ else }}??? $abil.TargetValue={{ $abil.TargetValue }}{{ end }}) - {{- end -}} - ), - {{- end -}} - {{- end -}} - ]), - {{- end -}} - {{- end -}} - ], sp-cost = {{ $.SPCost -}} - , icon-id = {{ $.IconID -}} -) -{{- end -}} +{{- end }} diff --git a/horsegen/skill.sql b/horsegen/skill.sql index 769b860..52344b2 100644 --- a/horsegen/skill.sql +++ b/horsegen/skill.sql @@ -21,6 +21,7 @@ WITH skill_names AS ( ), card_unique AS ( SELECT DISTINCT ss.skill_id1 AS unique_id, + card_name.id AS owner_id, card_name.name FROM card_data card JOIN card_name ON card.id = card_name.id @@ -81,6 +82,7 @@ SELECT d.target_value_2_3, IFNULL(p.need_skill_point, 0) AS sp_cost, d.unique_skill_id_1, + COALESCE(u.owner_id, iu.owner_id, 0) AS unique_owner_id, COALESCE(u.name, iu.name, '') AS unique_owner, d.icon_id, ROW_NUMBER() OVER (ORDER BY d.id) - 1 AS "index"