Game codes for Pokemon Academy Yiu Fai Kwok - 201198802 I have read the University Regulations on Plagiarism and state that the work covered by this declaration is my own and does not contain any unacknowledged work from other sources.

Dependencies:   mbed FXOS8700CQ mbed-rtos

Committer:
yfkwok
Date:
Thu May 09 00:41:05 2019 +0000
Revision:
34:3ddfaa217eca
Parent:
32:58def659f463
09/05/2019 - Last commit before submission

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yfkwok 2:464c7e62d97d 1 #include "Score.h"
yfkwok 2:464c7e62d97d 2
yfkwok 2:464c7e62d97d 3 Score::Score()
yfkwok 2:464c7e62d97d 4 {
yfkwok 2:464c7e62d97d 5
yfkwok 2:464c7e62d97d 6 }
yfkwok 2:464c7e62d97d 7
yfkwok 2:464c7e62d97d 8 Score::~Score()
yfkwok 2:464c7e62d97d 9 {
yfkwok 2:464c7e62d97d 10
yfkwok 2:464c7e62d97d 11 }
yfkwok 2:464c7e62d97d 12
yfkwok 32:58def659f463 13 // Background music played during main title screen, music originally from Pokemon (R/B/Y) title screen.
yfkwok 2:464c7e62d97d 14 void Score::title_music(Gamepad &pad)
yfkwok 2:464c7e62d97d 15 {
yfkwok 2:464c7e62d97d 16 while(1){
yfkwok 2:464c7e62d97d 17 pad.tone(NOTE_G3,0.1);
yfkwok 2:464c7e62d97d 18 wait(0.1);
yfkwok 2:464c7e62d97d 19 pad.tone(NOTE_B3,0.1);
yfkwok 2:464c7e62d97d 20 wait(0.1);
yfkwok 2:464c7e62d97d 21 pad.tone(NOTE_D4,0.1);
yfkwok 2:464c7e62d97d 22 wait(0.1);
yfkwok 2:464c7e62d97d 23 pad.tone(NOTE_FS4,0.1);
yfkwok 2:464c7e62d97d 24 wait(0.1);
yfkwok 17:5d8ff39a0e49 25 // Note: to break out of the looping of the title music
yfkwok 2:464c7e62d97d 26 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 27 pad.tone(NOTE_G4,0.4);
yfkwok 2:464c7e62d97d 28 wait(0.4);
yfkwok 2:464c7e62d97d 29 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 30 pad.tone(NOTE_G4,0.4);
yfkwok 2:464c7e62d97d 31 wait(0.4);
yfkwok 2:464c7e62d97d 32 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 33 wait(0.2);
yfkwok 2:464c7e62d97d 34 pad.tone(NOTE_G4,0.1);
yfkwok 2:464c7e62d97d 35 wait(0.1);
yfkwok 2:464c7e62d97d 36 pad.tone(NOTE_G4,0.1);
yfkwok 2:464c7e62d97d 37 wait(0.1);
yfkwok 2:464c7e62d97d 38 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 39 pad.tone(NOTE_G4,0.4);
yfkwok 2:464c7e62d97d 40 wait(0.4);
yfkwok 2:464c7e62d97d 41 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 42 pad.tone(NOTE_G4,0.4);
yfkwok 2:464c7e62d97d 43 wait(0.4);
yfkwok 2:464c7e62d97d 44 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 45 pad.tone(NOTE_G4,0.4);
yfkwok 2:464c7e62d97d 46 wait(0.4);
yfkwok 2:464c7e62d97d 47 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 48 pad.tone(NOTE_F4,0.4/3);
yfkwok 2:464c7e62d97d 49 wait(0.4/3);
yfkwok 2:464c7e62d97d 50 pad.tone(NOTE_F4,0.4/3);
yfkwok 2:464c7e62d97d 51 wait(0.4/3);
yfkwok 2:464c7e62d97d 52 pad.tone(NOTE_F4,0.4/3);
yfkwok 2:464c7e62d97d 53 wait(0.4/3);
yfkwok 2:464c7e62d97d 54 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 55 pad.tone(NOTE_F4,0.4/3);
yfkwok 2:464c7e62d97d 56 wait(0.4/3);
yfkwok 2:464c7e62d97d 57 pad.tone(NOTE_F4,0.4/3);
yfkwok 2:464c7e62d97d 58 wait(0.4/3);
yfkwok 2:464c7e62d97d 59 pad.tone(NOTE_FS4,0.4/3);
yfkwok 2:464c7e62d97d 60 wait(0.4/3);
yfkwok 2:464c7e62d97d 61 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 62
yfkwok 32:58def659f463 63 // Looping the section of the music infinitely until START_button is pressed
yfkwok 2:464c7e62d97d 64 while(1){
yfkwok 32:58def659f463 65 // bar 4
yfkwok 2:464c7e62d97d 66 pad.tone(NOTE_G4,0.6);
yfkwok 2:464c7e62d97d 67 wait(0.6);
yfkwok 2:464c7e62d97d 68 pad.tone(NOTE_B4,0.2);
yfkwok 2:464c7e62d97d 69 wait(0.2);
yfkwok 2:464c7e62d97d 70 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 71 pad.tone(NOTE_D5,0.8);
yfkwok 2:464c7e62d97d 72 wait(0.8);
yfkwok 2:464c7e62d97d 73 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 74 pad.tone(NOTE_C4,0.6);
yfkwok 2:464c7e62d97d 75 wait(0.6);
yfkwok 2:464c7e62d97d 76 pad.tone(NOTE_F4,0.2);
yfkwok 2:464c7e62d97d 77 wait(0.2);
yfkwok 2:464c7e62d97d 78 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 79 pad.tone(NOTE_F5,0.6);
yfkwok 2:464c7e62d97d 80 wait(0.6);
yfkwok 2:464c7e62d97d 81 pad.tone(NOTE_E5,0.1);
yfkwok 2:464c7e62d97d 82 wait(0.1);
yfkwok 2:464c7e62d97d 83 pad.tone(NOTE_DS5,0.1);
yfkwok 2:464c7e62d97d 84 wait(0.1);
yfkwok 2:464c7e62d97d 85 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 32:58def659f463 86 // bar 6
yfkwok 2:464c7e62d97d 87 pad.tone(NOTE_D5,0.8);
yfkwok 2:464c7e62d97d 88 wait(0.8);
yfkwok 2:464c7e62d97d 89 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 90 pad.tone(NOTE_F4,0.6);
yfkwok 2:464c7e62d97d 91 wait(0.6);
yfkwok 2:464c7e62d97d 92 pad.tone(NOTE_E4,0.1);
yfkwok 2:464c7e62d97d 93 wait(0.1);
yfkwok 2:464c7e62d97d 94 pad.tone(NOTE_DS4,0.1);
yfkwok 2:464c7e62d97d 95 wait(0.1);
yfkwok 2:464c7e62d97d 96 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 97 pad.tone(NOTE_D4,0.8);
yfkwok 2:464c7e62d97d 98 wait(0.8);
yfkwok 2:464c7e62d97d 99 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 100 pad.tone(NOTE_C4,0.8/3);
yfkwok 2:464c7e62d97d 101 wait(0.8/3);
yfkwok 2:464c7e62d97d 102 pad.tone(NOTE_B3,0.8/3);
yfkwok 2:464c7e62d97d 103 wait(0.8/3);
yfkwok 2:464c7e62d97d 104 pad.tone(NOTE_C4,0.8/3);
yfkwok 2:464c7e62d97d 105 wait(0.8/3);
yfkwok 2:464c7e62d97d 106 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 107 pad.tone(NOTE_G4,0.6);
yfkwok 2:464c7e62d97d 108 wait(0.6);
yfkwok 2:464c7e62d97d 109 pad.tone(NOTE_B4,0.2);
yfkwok 2:464c7e62d97d 110 wait(0.2);
yfkwok 2:464c7e62d97d 111 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 112 pad.tone(NOTE_D5,0.8);
yfkwok 2:464c7e62d97d 113 wait(0.8);
yfkwok 2:464c7e62d97d 114 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 115 pad.tone(NOTE_C4,0.8);
yfkwok 2:464c7e62d97d 116 wait(0.8);
yfkwok 2:464c7e62d97d 117 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 118 pad.tone(NOTE_C5,0.8/3);
yfkwok 2:464c7e62d97d 119 wait(0.8/3);
yfkwok 2:464c7e62d97d 120 pad.tone(NOTE_B4,0.8/3);
yfkwok 2:464c7e62d97d 121 wait(0.8/3);
yfkwok 2:464c7e62d97d 122 pad.tone(NOTE_C5,0.8/3);
yfkwok 2:464c7e62d97d 123 wait(0.8/3);
yfkwok 2:464c7e62d97d 124 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 125 pad.tone(NOTE_D5,0.8);
yfkwok 2:464c7e62d97d 126 wait(0.8);
yfkwok 2:464c7e62d97d 127 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 128 pad.tone(NOTE_F4,0.8/3);
yfkwok 2:464c7e62d97d 129 wait(0.8/3);
yfkwok 2:464c7e62d97d 130 pad.tone(NOTE_E4,0.8/3);
yfkwok 2:464c7e62d97d 131 wait(0.8/3);
yfkwok 2:464c7e62d97d 132 pad.tone(NOTE_C4,0.8/3);
yfkwok 2:464c7e62d97d 133 wait(0.8/3);
yfkwok 2:464c7e62d97d 134 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 135 pad.tone(NOTE_D4,1.0);
yfkwok 2:464c7e62d97d 136 wait(1.0);
yfkwok 2:464c7e62d97d 137 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 138 pad.tone(NOTE_B3,0.2);
yfkwok 2:464c7e62d97d 139 wait(0.2);
yfkwok 2:464c7e62d97d 140 pad.tone(NOTE_C4,0.2);
yfkwok 2:464c7e62d97d 141 wait(0.2);
yfkwok 2:464c7e62d97d 142 pad.tone(NOTE_D4,0.2);
yfkwok 2:464c7e62d97d 143 wait(0.2);
yfkwok 2:464c7e62d97d 144 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 145 //bar 12
yfkwok 2:464c7e62d97d 146 pad.tone(NOTE_G4,0.6);
yfkwok 2:464c7e62d97d 147 wait(0.6);
yfkwok 2:464c7e62d97d 148 pad.tone(NOTE_B4,0.2);
yfkwok 2:464c7e62d97d 149 wait(0.2);
yfkwok 2:464c7e62d97d 150 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 151 pad.tone(NOTE_D5,0.8);
yfkwok 2:464c7e62d97d 152 wait(0.8);
yfkwok 2:464c7e62d97d 153 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 154 pad.tone(NOTE_C4,0.6);
yfkwok 2:464c7e62d97d 155 wait(0.6);
yfkwok 2:464c7e62d97d 156 pad.tone(NOTE_F4,0.2);
yfkwok 2:464c7e62d97d 157 wait(0.2);
yfkwok 2:464c7e62d97d 158 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 159 pad.tone(NOTE_F5,0.6);
yfkwok 2:464c7e62d97d 160 wait(0.6);
yfkwok 2:464c7e62d97d 161 pad.tone(NOTE_E5,0.1);
yfkwok 2:464c7e62d97d 162 wait(0.1);
yfkwok 2:464c7e62d97d 163 pad.tone(NOTE_DS5,0.1);
yfkwok 2:464c7e62d97d 164 wait(0.1);
yfkwok 2:464c7e62d97d 165 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 166 pad.tone(NOTE_D5,0.8);
yfkwok 2:464c7e62d97d 167 wait(0.8);
yfkwok 2:464c7e62d97d 168 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 169 pad.tone(NOTE_F4,0.6);
yfkwok 2:464c7e62d97d 170 wait(0.6);
yfkwok 2:464c7e62d97d 171 pad.tone(NOTE_E4,0.1);
yfkwok 2:464c7e62d97d 172 wait(0.1);
yfkwok 2:464c7e62d97d 173 pad.tone(NOTE_DS4,0.1);
yfkwok 2:464c7e62d97d 174 wait(0.1);
yfkwok 2:464c7e62d97d 175 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 176 pad.tone(NOTE_D4,0.8);
yfkwok 2:464c7e62d97d 177 wait(0.8);
yfkwok 2:464c7e62d97d 178 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 179 pad.tone(NOTE_C4,0.8/3);
yfkwok 2:464c7e62d97d 180 wait(0.8/3);
yfkwok 2:464c7e62d97d 181 pad.tone(NOTE_B3,0.8/3);
yfkwok 2:464c7e62d97d 182 wait(0.8/3);
yfkwok 2:464c7e62d97d 183 pad.tone(NOTE_C4,0.8/3);
yfkwok 2:464c7e62d97d 184 wait(0.8/3);
yfkwok 2:464c7e62d97d 185 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 186 pad.tone(NOTE_G4,0.6);
yfkwok 2:464c7e62d97d 187 wait(0.6);
yfkwok 2:464c7e62d97d 188 pad.tone(NOTE_B4,0.2);
yfkwok 2:464c7e62d97d 189 wait(0.2);
yfkwok 2:464c7e62d97d 190 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 191 pad.tone(NOTE_D5,0.8);
yfkwok 2:464c7e62d97d 192 wait(0.8);
yfkwok 2:464c7e62d97d 193 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 32:58def659f463 194 // bar 17
yfkwok 2:464c7e62d97d 195 pad.tone(NOTE_C4,0.6);
yfkwok 2:464c7e62d97d 196 wait(0.6);
yfkwok 2:464c7e62d97d 197 pad.tone(NOTE_C4,0.2);
yfkwok 2:464c7e62d97d 198 wait(0.2);
yfkwok 2:464c7e62d97d 199 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 200 pad.tone(NOTE_F5,0.8/3);
yfkwok 2:464c7e62d97d 201 wait(0.8/3);
yfkwok 2:464c7e62d97d 202 pad.tone(NOTE_E5,0.8/3);
yfkwok 2:464c7e62d97d 203 wait(0.8/3);
yfkwok 2:464c7e62d97d 204 pad.tone(NOTE_F5,0.8/3);
yfkwok 2:464c7e62d97d 205 wait(0.8/3);
yfkwok 2:464c7e62d97d 206 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 207 pad.tone(NOTE_G5,0.6);
yfkwok 2:464c7e62d97d 208 wait(0.6);
yfkwok 2:464c7e62d97d 209 pad.tone(NOTE_AS5,0.2);
yfkwok 2:464c7e62d97d 210 wait(0.2);
yfkwok 2:464c7e62d97d 211 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 212 pad.tone(NOTE_G5,0.8);
yfkwok 2:464c7e62d97d 213 wait(0.8);
yfkwok 2:464c7e62d97d 214 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 215 pad.tone(NOTE_G5,0.6);
yfkwok 2:464c7e62d97d 216 wait(0.6);
yfkwok 2:464c7e62d97d 217 pad.tone(NOTE_A4,0.2);
yfkwok 2:464c7e62d97d 218 wait(0.2);
yfkwok 2:464c7e62d97d 219 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 220 pad.tone(NOTE_A5,0.8);
yfkwok 2:464c7e62d97d 221 wait(0.8);
yfkwok 2:464c7e62d97d 222 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 223 pad.tone(NOTE_AS5,0.6);
yfkwok 2:464c7e62d97d 224 wait(0.6);
yfkwok 2:464c7e62d97d 225 pad.tone(NOTE_F5,0.2);
yfkwok 2:464c7e62d97d 226 wait(0.2);
yfkwok 2:464c7e62d97d 227 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 228 pad.tone(NOTE_F5,0.8);
yfkwok 2:464c7e62d97d 229 wait(0.8);
yfkwok 2:464c7e62d97d 230 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 231 pad.tone(NOTE_F5,0.8);
yfkwok 2:464c7e62d97d 232 wait(0.8);
yfkwok 2:464c7e62d97d 233 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 234 pad.tone(NOTE_AS5,0.4);
yfkwok 2:464c7e62d97d 235 wait(0.4);
yfkwok 2:464c7e62d97d 236 pad.tone(NOTE_B5,0.4);
yfkwok 2:464c7e62d97d 237 wait(0.4);
yfkwok 2:464c7e62d97d 238 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 239 pad.tone(NOTE_C6,0.6);
yfkwok 2:464c7e62d97d 240 wait(0.6);
yfkwok 2:464c7e62d97d 241 pad.tone(NOTE_G5,0.2);
yfkwok 2:464c7e62d97d 242 wait(0.2);
yfkwok 2:464c7e62d97d 243 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 244 pad.tone(NOTE_G5,0.8);
yfkwok 2:464c7e62d97d 245 wait(0.8);
yfkwok 2:464c7e62d97d 246 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 32:58def659f463 247 // bar 23
yfkwok 2:464c7e62d97d 248 pad.tone(NOTE_G5,0.8);
yfkwok 2:464c7e62d97d 249 wait(0.8);
yfkwok 2:464c7e62d97d 250 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 251 pad.tone(NOTE_C6,0.4);
yfkwok 2:464c7e62d97d 252 wait(0.4);
yfkwok 2:464c7e62d97d 253 pad.tone(NOTE_CS6,0.4);
yfkwok 2:464c7e62d97d 254 wait(0.4);
yfkwok 2:464c7e62d97d 255 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 256 pad.tone(NOTE_D6,0.3);
yfkwok 2:464c7e62d97d 257 wait(0.3);
yfkwok 2:464c7e62d97d 258 pad.tone(NOTE_D5,0.1);
yfkwok 2:464c7e62d97d 259 wait(0.1);
yfkwok 2:464c7e62d97d 260 wait(0.3);
yfkwok 2:464c7e62d97d 261 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 262 pad.tone(NOTE_D5,0.1);
yfkwok 2:464c7e62d97d 263 wait(0.1);
yfkwok 2:464c7e62d97d 264 wait(0.3);
yfkwok 2:464c7e62d97d 265 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 266 pad.tone(NOTE_D5,0.1);
yfkwok 2:464c7e62d97d 267 wait(0.1);
yfkwok 2:464c7e62d97d 268 wait(0.3);
yfkwok 2:464c7e62d97d 269 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 270 pad.tone(NOTE_D5,0.1);
yfkwok 2:464c7e62d97d 271 wait(0.1);
yfkwok 2:464c7e62d97d 272 wait(0.3);
yfkwok 2:464c7e62d97d 273 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 274 pad.tone(NOTE_D5,0.1);
yfkwok 2:464c7e62d97d 275 wait(0.1);
yfkwok 2:464c7e62d97d 276 wait(0.3);
yfkwok 2:464c7e62d97d 277 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 278 pad.tone(NOTE_D5,0.1);
yfkwok 2:464c7e62d97d 279 wait(0.1);
yfkwok 2:464c7e62d97d 280 pad.tone(NOTE_C6,0.8/3);
yfkwok 2:464c7e62d97d 281 wait(0.8/3);
yfkwok 2:464c7e62d97d 282 pad.tone(NOTE_C6,0.8/3);
yfkwok 2:464c7e62d97d 283 wait(0.8/3);
yfkwok 2:464c7e62d97d 284 pad.tone(NOTE_CS6,0.8/3);
yfkwok 2:464c7e62d97d 285 wait(0.8/3);
yfkwok 2:464c7e62d97d 286 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 287 pad.tone(NOTE_D6,0.3);
yfkwok 2:464c7e62d97d 288 wait(0.3);
yfkwok 2:464c7e62d97d 289 pad.tone(NOTE_D5,0.1);
yfkwok 2:464c7e62d97d 290 wait(0.1);
yfkwok 2:464c7e62d97d 291 wait(0.3);
yfkwok 2:464c7e62d97d 292 pad.tone(NOTE_D5,0.1);
yfkwok 2:464c7e62d97d 293 wait(0.1);
yfkwok 2:464c7e62d97d 294 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 295 wait(0.3);
yfkwok 2:464c7e62d97d 296 pad.tone(NOTE_D5,0.1);
yfkwok 2:464c7e62d97d 297 wait(0.1);
yfkwok 2:464c7e62d97d 298 wait(0.3);
yfkwok 2:464c7e62d97d 299 pad.tone(NOTE_D5,0.1);
yfkwok 2:464c7e62d97d 300 wait(0.1);
yfkwok 2:464c7e62d97d 301 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 302 wait(0.3);
yfkwok 2:464c7e62d97d 303 pad.tone(NOTE_D5,0.1);
yfkwok 2:464c7e62d97d 304 wait(0.1);
yfkwok 2:464c7e62d97d 305 wait(0.3);
yfkwok 2:464c7e62d97d 306 pad.tone(NOTE_D5,0.1);
yfkwok 2:464c7e62d97d 307 wait(0.1);
yfkwok 2:464c7e62d97d 308 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 309 pad.tone(NOTE_C6,0.8/3);
yfkwok 2:464c7e62d97d 310 wait(0.8/3);
yfkwok 2:464c7e62d97d 311 pad.tone(NOTE_C6,0.8/3);
yfkwok 2:464c7e62d97d 312 wait(0.8/3);
yfkwok 2:464c7e62d97d 313 pad.tone(NOTE_B5,0.8/3);
yfkwok 2:464c7e62d97d 314 wait(0.8/3);
yfkwok 2:464c7e62d97d 315 if(pad.check_event(Gamepad::START_PRESSED) == true){break;}
yfkwok 2:464c7e62d97d 316 }
yfkwok 2:464c7e62d97d 317
yfkwok 2:464c7e62d97d 318 break;
yfkwok 2:464c7e62d97d 319 }
yfkwok 2:464c7e62d97d 320 }
yfkwok 2:464c7e62d97d 321
yfkwok 32:58def659f463 322 // Level up sound effect for when player progress to next year or next term, music originally from Pokemon (R/B/Y) when pokemon levels up.
yfkwok 2:464c7e62d97d 323 void Score::level_up(Gamepad &pad)
yfkwok 2:464c7e62d97d 324 {
yfkwok 2:464c7e62d97d 325 pad.tone(NOTE_E5,0.12);
yfkwok 2:464c7e62d97d 326 wait(0.15);
yfkwok 2:464c7e62d97d 327 pad.tone(NOTE_E5,0.12);
yfkwok 2:464c7e62d97d 328 wait(0.15);
yfkwok 2:464c7e62d97d 329 pad.tone(NOTE_E5,0.12);
yfkwok 2:464c7e62d97d 330 wait(0.15);
yfkwok 2:464c7e62d97d 331 pad.tone(NOTE_B5,0.45);
yfkwok 2:464c7e62d97d 332 wait(0.45);
yfkwok 2:464c7e62d97d 333 }
yfkwok 2:464c7e62d97d 334
yfkwok 32:58def659f463 335 // Congratulation music for when player select its starter or when the starter evolves, music originally from Pokemon (R/B/Y) when pokemon evovlved.
yfkwok 2:464c7e62d97d 336 void Score::congrats(Gamepad &pad)
yfkwok 2:464c7e62d97d 337 {
yfkwok 2:464c7e62d97d 338 pad.tone(NOTE_A5,0.35);
yfkwok 2:464c7e62d97d 339 wait(0.35);
yfkwok 2:464c7e62d97d 340 pad.tone(NOTE_F5,0.35);
yfkwok 2:464c7e62d97d 341 wait(0.35);
yfkwok 2:464c7e62d97d 342 pad.tone(NOTE_C5,0.7);
yfkwok 2:464c7e62d97d 343 wait(0.7);
yfkwok 2:464c7e62d97d 344 pad.tone(NOTE_AS5,0.35/3);
yfkwok 2:464c7e62d97d 345 wait(0.35/3);
yfkwok 2:464c7e62d97d 346 pad.tone(NOTE_AS5,0.35/3);
yfkwok 2:464c7e62d97d 347 wait(0.35/3);
yfkwok 2:464c7e62d97d 348 pad.tone(NOTE_AS5,0.35/3);
yfkwok 2:464c7e62d97d 349 wait(0.35/3);
yfkwok 2:464c7e62d97d 350 pad.tone(NOTE_G5,0.35/3);
yfkwok 2:464c7e62d97d 351 wait(0.35/3);
yfkwok 2:464c7e62d97d 352 pad.tone(NOTE_G5,0.35/3);
yfkwok 2:464c7e62d97d 353 wait(0.35/3);
yfkwok 2:464c7e62d97d 354 pad.tone(NOTE_AS5,0.35/3);
yfkwok 2:464c7e62d97d 355 wait(0.35/3);
yfkwok 2:464c7e62d97d 356 pad.tone(NOTE_A5,0.7);
yfkwok 2:464c7e62d97d 357 wait(0.7);
yfkwok 2:464c7e62d97d 358 }
yfkwok 2:464c7e62d97d 359
yfkwok 32:58def659f463 360 // Coin sound effect for different games
yfkwok 2:464c7e62d97d 361 void Score::coin(Gamepad &pad)
yfkwok 2:464c7e62d97d 362 {
yfkwok 2:464c7e62d97d 363 pad.tone(NOTE_B5,0.1);
yfkwok 2:464c7e62d97d 364 wait(0.1);
yfkwok 2:464c7e62d97d 365 pad.tone(NOTE_E6,0.4);
yfkwok 4:5bc9c4363d31 366 }
yfkwok 4:5bc9c4363d31 367
yfkwok 32:58def659f463 368 // Evolution music and animation which will be played for the chosen pokemon when the enter a new year, music originally from Pokemon (R/B/Y) when pokemon evolves.
yfkwok 4:5bc9c4363d31 369 void Score::evolution_music(Gamepad &pad, N5110 &lcd, int cha, int year)
yfkwok 4:5bc9c4363d31 370 {
yfkwok 17:5d8ff39a0e49 371 //Initiate position for name titles
yfkwok 12:71683453f66a 372 int x = 84;
yfkwok 12:71683453f66a 373 int y = 12;
yfkwok 4:5bc9c4363d31 374 // bar 1
yfkwok 12:71683453f66a 375 draw(lcd, cha, year, x, y);
yfkwok 4:5bc9c4363d31 376 pad.tone(NOTE_G5,0.5/4);
yfkwok 4:5bc9c4363d31 377 wait(0.5/4);
yfkwok 4:5bc9c4363d31 378 pad.tone(NOTE_D5,0.5/4);
yfkwok 4:5bc9c4363d31 379 wait(0.5/4);
yfkwok 4:5bc9c4363d31 380 pad.tone(NOTE_G5,0.5/4);
yfkwok 4:5bc9c4363d31 381 wait(0.5/4);
yfkwok 4:5bc9c4363d31 382 pad.tone(NOTE_D5,0.5/4);
yfkwok 4:5bc9c4363d31 383 wait(0.5/4);
yfkwok 4:5bc9c4363d31 384 wait(1.5);
yfkwok 4:5bc9c4363d31 385 // bar 2
yfkwok 4:5bc9c4363d31 386
yfkwok 4:5bc9c4363d31 387 pad.tone(NOTE_G4,0.5/2);
yfkwok 4:5bc9c4363d31 388 wait(0.5);
yfkwok 4:5bc9c4363d31 389 lcd.clear();
yfkwok 4:5bc9c4363d31 390 lcd.refresh();
yfkwok 4:5bc9c4363d31 391 pad.tone(NOTE_G4,0.5/2);
yfkwok 5:bc0691d02fd5 392 wait(0.25);
yfkwok 12:71683453f66a 393 draw(lcd, cha, year, x, y);;
yfkwok 5:bc0691d02fd5 394 wait(0.25);
yfkwok 4:5bc9c4363d31 395 pad.tone(NOTE_G4,0.5/2);
yfkwok 5:bc0691d02fd5 396 wait(0.25);
yfkwok 5:bc0691d02fd5 397 lcd.clear();
yfkwok 5:bc0691d02fd5 398 lcd.refresh();
yfkwok 5:bc0691d02fd5 399 wait(0.25);
yfkwok 4:5bc9c4363d31 400 pad.tone(NOTE_G4,0.5/2);
yfkwok 4:5bc9c4363d31 401 wait(0.5);
yfkwok 12:71683453f66a 402 draw(lcd, cha, year, x, y);
yfkwok 4:5bc9c4363d31 403 pad.tone(NOTE_G4,0.5/2);
yfkwok 5:bc0691d02fd5 404 wait(0.25);
yfkwok 5:bc0691d02fd5 405 lcd.clear();
yfkwok 5:bc0691d02fd5 406 lcd.refresh();
yfkwok 5:bc0691d02fd5 407 wait(0.25);
yfkwok 4:5bc9c4363d31 408 pad.tone(NOTE_G4,0.5/2);
yfkwok 5:bc0691d02fd5 409 wait(0.25);
yfkwok 12:71683453f66a 410 draw(lcd, cha, year, x, y);
yfkwok 5:bc0691d02fd5 411 wait(0.25);
yfkwok 4:5bc9c4363d31 412 pad.tone(NOTE_G4,0.5/2);
yfkwok 4:5bc9c4363d31 413 wait(0.5);
yfkwok 4:5bc9c4363d31 414 lcd.clear();
yfkwok 4:5bc9c4363d31 415 lcd.refresh();
yfkwok 4:5bc9c4363d31 416 pad.tone(NOTE_A4,0.5);
yfkwok 4:5bc9c4363d31 417 wait(0.5);
yfkwok 4:5bc9c4363d31 418 // bar 4
yfkwok 12:71683453f66a 419 draw(lcd, cha, year, x, y);
yfkwok 4:5bc9c4363d31 420 pad.tone(NOTE_G4,0.5/2);
yfkwok 4:5bc9c4363d31 421 wait(0.5);
yfkwok 4:5bc9c4363d31 422 lcd.clear();
yfkwok 4:5bc9c4363d31 423 lcd.refresh();
yfkwok 4:5bc9c4363d31 424 pad.tone(NOTE_G4,0.5/2);
yfkwok 4:5bc9c4363d31 425 wait(0.5);
yfkwok 12:71683453f66a 426 draw(lcd, cha, year, x, y);
yfkwok 4:5bc9c4363d31 427 pad.tone(NOTE_G4,0.5/2);
yfkwok 4:5bc9c4363d31 428 wait(0.5);
yfkwok 4:5bc9c4363d31 429 lcd.clear();
yfkwok 4:5bc9c4363d31 430 lcd.refresh();
yfkwok 4:5bc9c4363d31 431 pad.tone(NOTE_G4,0.5/2);
yfkwok 4:5bc9c4363d31 432 wait(0.5);
yfkwok 12:71683453f66a 433 draw(lcd, cha, year, x, y);
yfkwok 4:5bc9c4363d31 434 pad.tone(NOTE_G4,0.5/2);
yfkwok 5:bc0691d02fd5 435 wait(0.25);
yfkwok 5:bc0691d02fd5 436 lcd.clear();
yfkwok 5:bc0691d02fd5 437 lcd.refresh();
yfkwok 5:bc0691d02fd5 438 wait(0.25);
yfkwok 12:71683453f66a 439 draw(lcd, cha, year, x, y);
yfkwok 5:bc0691d02fd5 440 pad.tone(NOTE_G4,0.5/2);
yfkwok 5:bc0691d02fd5 441 wait(0.25);
yfkwok 4:5bc9c4363d31 442 lcd.clear();
yfkwok 4:5bc9c4363d31 443 lcd.refresh();
yfkwok 5:bc0691d02fd5 444 wait(0.25);
yfkwok 12:71683453f66a 445 draw(lcd, cha, year, x, y);
yfkwok 5:bc0691d02fd5 446 pad.tone(NOTE_G4,0.5/2);
yfkwok 5:bc0691d02fd5 447 wait(0.25);
yfkwok 5:bc0691d02fd5 448 lcd.clear();
yfkwok 5:bc0691d02fd5 449 lcd.refresh();
yfkwok 5:bc0691d02fd5 450 wait(0.25);
yfkwok 12:71683453f66a 451 draw(lcd, cha, year, x, y);
yfkwok 4:5bc9c4363d31 452 pad.tone(NOTE_B4,0.5);
yfkwok 5:bc0691d02fd5 453 wait(0.25);
yfkwok 5:bc0691d02fd5 454 lcd.clear();
yfkwok 5:bc0691d02fd5 455 lcd.refresh();
yfkwok 5:bc0691d02fd5 456 wait(0.25);
yfkwok 17:5d8ff39a0e49 457 // Define motion of name title for final evolution, activate when year = year + 1 = 3. Update lcd screen at 10 frames per sec.
yfkwok 12:71683453f66a 458 year = year + 1;
yfkwok 12:71683453f66a 459 if(year == 3){
yfkwok 12:71683453f66a 460 while(x > -170){
yfkwok 12:71683453f66a 461 draw(lcd, cha, year, x, y);;
yfkwok 12:71683453f66a 462 x = x - 10;
yfkwok 12:71683453f66a 463 wait(0.10);
yfkwok 12:71683453f66a 464 }
yfkwok 12:71683453f66a 465 }
yfkwok 17:5d8ff39a0e49 466 // Decrease parameter (year) to draw the corresponding evolution sprite
yfkwok 12:71683453f66a 467 year = year - 1;
yfkwok 4:5bc9c4363d31 468 congrats(pad, lcd, cha, year);
yfkwok 4:5bc9c4363d31 469 }
yfkwok 4:5bc9c4363d31 470
yfkwok 32:58def659f463 471 // Music to congratulate player the pokemon has succesfully evolved. Draw the pokemon sprite according to the selection made.
yfkwok 4:5bc9c4363d31 472 void Score::congrats(Gamepad &pad, N5110 &lcd, int cha, int year)
yfkwok 4:5bc9c4363d31 473 {
yfkwok 17:5d8ff39a0e49 474 // Draw the corresponding evolution depending on the year (year) and character selected (cha)
yfkwok 4:5bc9c4363d31 475 draw_cong(lcd, cha, year);
yfkwok 4:5bc9c4363d31 476 // bar 1
yfkwok 4:5bc9c4363d31 477 pad.tone(NOTE_A5,0.4);
yfkwok 4:5bc9c4363d31 478 wait(0.4);
yfkwok 4:5bc9c4363d31 479 pad.tone(NOTE_F5,0.4);
yfkwok 4:5bc9c4363d31 480 wait(0.4);
yfkwok 4:5bc9c4363d31 481 pad.tone(NOTE_C5,0.8);
yfkwok 4:5bc9c4363d31 482 wait(0.8);
yfkwok 4:5bc9c4363d31 483 // bar 2
yfkwok 4:5bc9c4363d31 484 pad.tone(NOTE_AS5,0.4/3);
yfkwok 4:5bc9c4363d31 485 wait(0.4/3);
yfkwok 4:5bc9c4363d31 486 pad.tone(NOTE_AS5,0.4/3);
yfkwok 4:5bc9c4363d31 487 wait(0.4/3);
yfkwok 4:5bc9c4363d31 488 pad.tone(NOTE_AS5,0.4/3);
yfkwok 4:5bc9c4363d31 489 wait(0.4/3);
yfkwok 4:5bc9c4363d31 490 pad.tone(NOTE_G5,0.4/3);
yfkwok 4:5bc9c4363d31 491 wait(0.4/3);
yfkwok 4:5bc9c4363d31 492 pad.tone(NOTE_G5,0.4/3);
yfkwok 4:5bc9c4363d31 493 wait(0.4/3);
yfkwok 4:5bc9c4363d31 494 pad.tone(NOTE_AS5,0.4/3);
yfkwok 4:5bc9c4363d31 495 wait(0.4/3);
yfkwok 4:5bc9c4363d31 496 pad.tone(NOTE_A5,0.8);
yfkwok 4:5bc9c4363d31 497 wait(0.8);
yfkwok 4:5bc9c4363d31 498 }
yfkwok 4:5bc9c4363d31 499
yfkwok 32:58def659f463 500 // Draw function used to create the animation for the evolution while the music is being played
yfkwok 12:71683453f66a 501 void Score::draw(N5110 &lcd, int cha, int year, int x, int y)
yfkwok 4:5bc9c4363d31 502 {
yfkwok 32:58def659f463 503 // Draw sprite of selected character, call functions from Characters folder, then draw the corresponding sprite depending on which year the game is in.
yfkwok 4:5bc9c4363d31 504 lcd.clear();
yfkwok 31:0d2c19a285f6 505 if(year == 1 && cha == 1) {_s1.evo_1_sprite(lcd, 23, 9);}
yfkwok 31:0d2c19a285f6 506 else if(year == 1 && cha == 2) {_c1.evo_1_sprite(lcd, 23, 7);}
yfkwok 31:0d2c19a285f6 507 else if(year == 1 && cha == 0) {_b1.evo_1_sprite(lcd, 27, 14);}
yfkwok 31:0d2c19a285f6 508 else if(year == 2 && cha == 1) {_s1.evo_2_sprite(lcd, 20, 2);}
yfkwok 31:0d2c19a285f6 509 else if(year == 2 && cha == 2) {_c1.evo_2_sprite(lcd, 17, 2);}
yfkwok 31:0d2c19a285f6 510 else if(year == 2 && cha == 0) {_b1.evo_2_sprite(lcd, 14, 1);}
yfkwok 12:71683453f66a 511 else if(year == 3 && cha == 1) {_s1.evo_3_sprite(lcd, x, y);}
yfkwok 12:71683453f66a 512 else if(year == 3 && cha == 2) {_c1.evo_3_sprite(lcd, x, y);}
yfkwok 12:71683453f66a 513 else if(year == 3 && cha == 0) {_b1.evo_3_sprite(lcd, x, y);}
yfkwok 4:5bc9c4363d31 514 lcd.refresh();
yfkwok 4:5bc9c4363d31 515 }
yfkwok 4:5bc9c4363d31 516
yfkwok 4:5bc9c4363d31 517 void Score::draw_cong(N5110 &lcd, int cha, int year)
yfkwok 4:5bc9c4363d31 518 {
yfkwok 32:58def659f463 519 // Draw sprite of selected character after evolution, call functions from Characters folder, then draw the corresponding sprite depending on which year the game is in.
yfkwok 4:5bc9c4363d31 520 lcd.clear();
yfkwok 4:5bc9c4363d31 521 if(year == 0 && cha == 1) {_s1.evo_1_cong(lcd);}
yfkwok 10:adff3c804985 522 else if(year == 0 && cha == 2) {_c1.evo_1_cong(lcd);}
yfkwok 12:71683453f66a 523 else if(year == 0 && cha == 0) {_b1.evo_1_cong(lcd);}
yfkwok 4:5bc9c4363d31 524 else if(year == 1 && cha == 1) {_s1.evo_2_cong(lcd);}
yfkwok 10:adff3c804985 525 else if(year == 1 && cha == 2) {_c1.evo_2_cong(lcd);}
yfkwok 12:71683453f66a 526 else if(year == 1 && cha == 0) {_b1.evo_2_cong(lcd);}
yfkwok 12:71683453f66a 527 else if(year == 2 && cha == 1) {_s1.evo_3_cong(lcd);}
yfkwok 12:71683453f66a 528 else if(year == 2 && cha == 2) {_c1.evo_3_cong(lcd);}
yfkwok 12:71683453f66a 529 else if(year == 2 && cha == 0) {_b1.evo_3_cong(lcd);}
yfkwok 4:5bc9c4363d31 530 lcd.refresh();
yfkwok 5:bc0691d02fd5 531 }
yfkwok 5:bc0691d02fd5 532
yfkwok 32:58def659f463 533 // Music that plays when the player wins the mini game or passes the exam, music originally from Pokemon (R/B/Y) when player wins trainer battle
yfkwok 5:bc0691d02fd5 534 void Score::win(Gamepad &pad)
yfkwok 5:bc0691d02fd5 535 {
yfkwok 5:bc0691d02fd5 536 // bar 1
yfkwok 5:bc0691d02fd5 537 pad.tone(NOTE_E5,0.33/4);
yfkwok 5:bc0691d02fd5 538 wait(0.33/4);
yfkwok 5:bc0691d02fd5 539 pad.tone(NOTE_FS5,0.33/4);
yfkwok 5:bc0691d02fd5 540 wait(0.33/4);
yfkwok 5:bc0691d02fd5 541 pad.tone(NOTE_GS5,0.33/4);
yfkwok 5:bc0691d02fd5 542 wait(0.33/4);
yfkwok 5:bc0691d02fd5 543 pad.tone(NOTE_A5,0.33/4);
yfkwok 5:bc0691d02fd5 544 wait(0.33/4);
yfkwok 5:bc0691d02fd5 545 pad.tone(NOTE_B5,0.33*3);
yfkwok 5:bc0691d02fd5 546 wait(0.33*3);
yfkwok 5:bc0691d02fd5 547 // bar 2
yfkwok 5:bc0691d02fd5 548 pad.tone(NOTE_B4,0.25/2);
yfkwok 5:bc0691d02fd5 549 wait(0.33/2);
yfkwok 5:bc0691d02fd5 550 pad.tone(NOTE_A4,0.25/2);
yfkwok 5:bc0691d02fd5 551 wait(0.33/2);
yfkwok 5:bc0691d02fd5 552 pad.tone(NOTE_GS4,0.25/2);
yfkwok 5:bc0691d02fd5 553 wait(0.33/2);
yfkwok 5:bc0691d02fd5 554 pad.tone(NOTE_A4,0.25/2);
yfkwok 5:bc0691d02fd5 555 wait(0.33/2);
yfkwok 5:bc0691d02fd5 556 pad.tone(NOTE_B4,0.25/2);
yfkwok 5:bc0691d02fd5 557 wait(0.33/2);
yfkwok 5:bc0691d02fd5 558 pad.tone(NOTE_B4,0.25/2);
yfkwok 5:bc0691d02fd5 559 wait(0.33/2);
yfkwok 5:bc0691d02fd5 560 pad.tone(NOTE_B4,0.25);
yfkwok 5:bc0691d02fd5 561 wait(0.33);
yfkwok 5:bc0691d02fd5 562 // bar 3
yfkwok 5:bc0691d02fd5 563 pad.tone(NOTE_CS5,0.25/2);
yfkwok 5:bc0691d02fd5 564 wait(0.33/2);
yfkwok 5:bc0691d02fd5 565 pad.tone(NOTE_CS5,0.25/2);
yfkwok 5:bc0691d02fd5 566 wait(0.33/2);
yfkwok 5:bc0691d02fd5 567 pad.tone(NOTE_CS5,0.25);
yfkwok 5:bc0691d02fd5 568 wait(0.33);
yfkwok 5:bc0691d02fd5 569 pad.tone(NOTE_B4,0.25/2);
yfkwok 5:bc0691d02fd5 570 wait(0.33/2);
yfkwok 5:bc0691d02fd5 571 pad.tone(NOTE_B4,0.25/2);
yfkwok 5:bc0691d02fd5 572 wait(0.33/2);
yfkwok 5:bc0691d02fd5 573 pad.tone(NOTE_B4,0.25);
yfkwok 5:bc0691d02fd5 574 wait(0.33);
yfkwok 5:bc0691d02fd5 575 // bar 4
yfkwok 5:bc0691d02fd5 576 pad.tone(NOTE_B4,0.25/2);
yfkwok 5:bc0691d02fd5 577 wait(0.33/2);
yfkwok 5:bc0691d02fd5 578 pad.tone(NOTE_A4,0.25/2);
yfkwok 5:bc0691d02fd5 579 wait(0.33/2);
yfkwok 5:bc0691d02fd5 580 pad.tone(NOTE_GS4,0.25/2);
yfkwok 5:bc0691d02fd5 581 wait(0.33/2);
yfkwok 5:bc0691d02fd5 582 pad.tone(NOTE_A4,0.25/2);
yfkwok 5:bc0691d02fd5 583 wait(0.33/2);
yfkwok 5:bc0691d02fd5 584 pad.tone(NOTE_B4,0.25/2);
yfkwok 5:bc0691d02fd5 585 wait(0.33/2);
yfkwok 5:bc0691d02fd5 586 pad.tone(NOTE_B4,0.25/2);
yfkwok 5:bc0691d02fd5 587 wait(0.33/2);
yfkwok 5:bc0691d02fd5 588 pad.tone(NOTE_B4,0.25);
yfkwok 5:bc0691d02fd5 589 wait(0.33);
yfkwok 5:bc0691d02fd5 590 // bar 5
yfkwok 5:bc0691d02fd5 591 pad.tone(NOTE_CS5,0.25/2);
yfkwok 5:bc0691d02fd5 592 wait(0.33/2);
yfkwok 5:bc0691d02fd5 593 pad.tone(NOTE_CS5,0.25/2);
yfkwok 5:bc0691d02fd5 594 wait(0.33/2);
yfkwok 5:bc0691d02fd5 595 pad.tone(NOTE_CS5,0.25);
yfkwok 5:bc0691d02fd5 596 wait(0.33);
yfkwok 5:bc0691d02fd5 597 pad.tone(NOTE_B4,0.25);
yfkwok 5:bc0691d02fd5 598 wait(0.6);
yfkwok 5:bc0691d02fd5 599 }
yfkwok 5:bc0691d02fd5 600
yfkwok 32:58def659f463 601 // Introduction music to the EXAM page, music originally from Pokemon (R/B/Y) when player starts the battle with GYM leader.
yfkwok 5:bc0691d02fd5 602 void Score::exam_intro(Gamepad &pad)
yfkwok 5:bc0691d02fd5 603 {
yfkwok 5:bc0691d02fd5 604 // bar 1
yfkwok 5:bc0691d02fd5 605 pad.tone(NOTE_F5,0.33/4);
yfkwok 5:bc0691d02fd5 606 wait(0.33/4);
yfkwok 5:bc0691d02fd5 607 pad.tone(NOTE_E5,0.33/4);
yfkwok 5:bc0691d02fd5 608 wait(0.33/4);
yfkwok 5:bc0691d02fd5 609 pad.tone(NOTE_DS5,0.33/4);
yfkwok 5:bc0691d02fd5 610 wait(0.33/4);
yfkwok 5:bc0691d02fd5 611 pad.tone(NOTE_E5,0.33/4);
yfkwok 5:bc0691d02fd5 612 wait(0.33/4);
yfkwok 5:bc0691d02fd5 613 pad.tone(NOTE_DS5,0.33/4);
yfkwok 5:bc0691d02fd5 614 wait(0.33/4);
yfkwok 5:bc0691d02fd5 615 pad.tone(NOTE_D5,0.33/4);
yfkwok 5:bc0691d02fd5 616 wait(0.33/4);
yfkwok 5:bc0691d02fd5 617 pad.tone(NOTE_DS5,0.33/4);
yfkwok 5:bc0691d02fd5 618 wait(0.33/4);
yfkwok 5:bc0691d02fd5 619 pad.tone(NOTE_D5,0.33/4);
yfkwok 5:bc0691d02fd5 620 wait(0.33/4);
yfkwok 5:bc0691d02fd5 621 pad.tone(NOTE_CS5,0.33/4);
yfkwok 5:bc0691d02fd5 622 wait(0.33/4);
yfkwok 5:bc0691d02fd5 623 pad.tone(NOTE_D5,0.33/4);
yfkwok 5:bc0691d02fd5 624 wait(0.33/4);
yfkwok 5:bc0691d02fd5 625 pad.tone(NOTE_CS5,0.33/4);
yfkwok 5:bc0691d02fd5 626 wait(0.33/4);
yfkwok 5:bc0691d02fd5 627 pad.tone(NOTE_C5,0.33/4);
yfkwok 5:bc0691d02fd5 628 wait(0.33/4);
yfkwok 5:bc0691d02fd5 629 pad.tone(NOTE_E4,0.33/4);
yfkwok 5:bc0691d02fd5 630 wait(0.33/4);
yfkwok 5:bc0691d02fd5 631 pad.tone(NOTE_DS4,0.33/4);
yfkwok 5:bc0691d02fd5 632 wait(0.33/4);
yfkwok 5:bc0691d02fd5 633 pad.tone(NOTE_D4,0.33/4);
yfkwok 5:bc0691d02fd5 634 wait(0.33/4);
yfkwok 5:bc0691d02fd5 635 pad.tone(NOTE_DS4,0.33/4);
yfkwok 5:bc0691d02fd5 636 wait(0.33/4);
yfkwok 5:bc0691d02fd5 637 // bar 2
yfkwok 5:bc0691d02fd5 638 pad.tone(NOTE_D4,0.33/4);
yfkwok 5:bc0691d02fd5 639 wait(0.33/4);
yfkwok 5:bc0691d02fd5 640 pad.tone(NOTE_C4,0.33/4);
yfkwok 5:bc0691d02fd5 641 wait(0.33/4);
yfkwok 5:bc0691d02fd5 642 pad.tone(NOTE_FS4,0.33/4);
yfkwok 5:bc0691d02fd5 643 wait(0.33/4);
yfkwok 5:bc0691d02fd5 644 pad.tone(NOTE_F4,0.33/4);
yfkwok 5:bc0691d02fd5 645 wait(0.33/4);
yfkwok 5:bc0691d02fd5 646 pad.tone(NOTE_E4,0.33/4);
yfkwok 5:bc0691d02fd5 647 wait(0.33/4);
yfkwok 5:bc0691d02fd5 648 pad.tone(NOTE_F4,0.33/4);
yfkwok 5:bc0691d02fd5 649 wait(0.33/4);
yfkwok 5:bc0691d02fd5 650 pad.tone(NOTE_E4,0.33/4);
yfkwok 5:bc0691d02fd5 651 wait(0.33/4);
yfkwok 5:bc0691d02fd5 652 pad.tone(NOTE_DS4,0.33/4);
yfkwok 5:bc0691d02fd5 653 wait(0.33/4);
yfkwok 5:bc0691d02fd5 654 pad.tone(NOTE_E4,0.33/4);
yfkwok 5:bc0691d02fd5 655 wait(0.33/4);
yfkwok 5:bc0691d02fd5 656 pad.tone(NOTE_DS4,0.33/4);
yfkwok 5:bc0691d02fd5 657 wait(0.33/4);
yfkwok 5:bc0691d02fd5 658 pad.tone(NOTE_D4,0.33/4);
yfkwok 5:bc0691d02fd5 659 wait(0.33/4);
yfkwok 5:bc0691d02fd5 660 pad.tone(NOTE_DS4,0.33/4);
yfkwok 5:bc0691d02fd5 661 wait(0.33/4);
yfkwok 5:bc0691d02fd5 662 pad.tone(NOTE_D4,0.33/4);
yfkwok 5:bc0691d02fd5 663 wait(0.33/4);
yfkwok 5:bc0691d02fd5 664 pad.tone(NOTE_C4,0.33/4);
yfkwok 5:bc0691d02fd5 665 wait(0.33/4);
yfkwok 5:bc0691d02fd5 666 pad.tone(NOTE_D4,0.33/4);
yfkwok 5:bc0691d02fd5 667 wait(0.33/4);
yfkwok 5:bc0691d02fd5 668 pad.tone(NOTE_C4,0.33/4);
yfkwok 5:bc0691d02fd5 669 wait(0.33/4);
yfkwok 5:bc0691d02fd5 670 }
yfkwok 5:bc0691d02fd5 671
yfkwok 32:58def659f463 672 // Draw function to create the animation in Graduation, takes in the variable x to move the sprite across the screen
yfkwok 31:0d2c19a285f6 673 void Score::draw_grad(N5110 &lcd, int cha, int year, int x)
yfkwok 31:0d2c19a285f6 674 {
yfkwok 31:0d2c19a285f6 675 // Draw sprite of selected character in graduation, call functions from Characters folder
yfkwok 31:0d2c19a285f6 676 lcd.clear();
yfkwok 31:0d2c19a285f6 677 if(year == 1 && cha == 1) {_s1.evo_1_sprite(lcd, x, 9);}
yfkwok 31:0d2c19a285f6 678 else if(year == 1 && cha == 2) {_c1.evo_1_sprite(lcd, x, 7);}
yfkwok 31:0d2c19a285f6 679 else if(year == 1 && cha == 0) {_b1.evo_1_sprite(lcd, x, 14);}
yfkwok 31:0d2c19a285f6 680 else if(year == 2 && cha == 1) {_s1.evo_2_sprite(lcd, x, 2);}
yfkwok 31:0d2c19a285f6 681 else if(year == 2 && cha == 2) {_c1.evo_2_sprite(lcd, x, 2);}
yfkwok 31:0d2c19a285f6 682 else if(year == 2 && cha == 0) {_b1.evo_2_sprite(lcd, x, 1);}
yfkwok 31:0d2c19a285f6 683 else if(year == 3 && cha == 1) {_s1.evo_3_cong(lcd);}
yfkwok 31:0d2c19a285f6 684 else if(year == 3 && cha == 2) {_c1.evo_3_cong(lcd);}
yfkwok 31:0d2c19a285f6 685 else if(year == 3 && cha == 0) {_b1.evo_3_cong(lcd);}
yfkwok 31:0d2c19a285f6 686 lcd.refresh();
yfkwok 31:0d2c19a285f6 687 }
yfkwok 31:0d2c19a285f6 688
yfkwok 32:58def659f463 689 // Function for graduation background music and animation, music originally from Pokemon (R/B/Y) background music of route 3 with a bit of edit to create an ending to the piece
yfkwok 31:0d2c19a285f6 690 void Score::graduation(Gamepad &pad, N5110 &lcd, int cha)
yfkwok 31:0d2c19a285f6 691 {
yfkwok 31:0d2c19a285f6 692 // bar 1
yfkwok 32:58def659f463 693 lcd.clear();
yfkwok 32:58def659f463 694 lcd.printString("At Last...", 0, 2);
yfkwok 32:58def659f463 695 lcd.printString("The Time Comes", 0, 3);
yfkwok 32:58def659f463 696 lcd.refresh();
yfkwok 31:0d2c19a285f6 697 pad.tone(NOTE_G4,0.46/4);
yfkwok 31:0d2c19a285f6 698 wait(0.46/4);
yfkwok 31:0d2c19a285f6 699 pad.tone(NOTE_A4,0.46/4);
yfkwok 31:0d2c19a285f6 700 wait(0.46/4);
yfkwok 31:0d2c19a285f6 701 pad.tone(NOTE_B4,0.46*1.5);
yfkwok 31:0d2c19a285f6 702 wait(0.46*1.5);
yfkwok 31:0d2c19a285f6 703 pad.tone(NOTE_A4,0.46/4);
yfkwok 31:0d2c19a285f6 704 wait(0.46/4);
yfkwok 31:0d2c19a285f6 705 pad.tone(NOTE_B4,0.46/4);
yfkwok 31:0d2c19a285f6 706 wait(0.46/4);
yfkwok 31:0d2c19a285f6 707 // bar 2
yfkwok 31:0d2c19a285f6 708 draw_grad(lcd, cha, 1, 84);
yfkwok 31:0d2c19a285f6 709 pad.tone(NOTE_C5,0.46/2);
yfkwok 31:0d2c19a285f6 710 wait(0.46/2);
yfkwok 34:3ddfaa217eca 711 pad.tone(NOTE_G3,0.44);
yfkwok 31:0d2c19a285f6 712 wait(0.46/2);
yfkwok 31:0d2c19a285f6 713 draw_grad(lcd, cha, 1, 74);
yfkwok 31:0d2c19a285f6 714 wait(0.46/2);
yfkwok 31:0d2c19a285f6 715 draw_grad(lcd, cha, 1, 64);
yfkwok 34:3ddfaa217eca 716 pad.tone(NOTE_G3,0.44/4);
yfkwok 31:0d2c19a285f6 717 wait(0.46/4);
yfkwok 34:3ddfaa217eca 718 pad.tone(NOTE_G3,0.44/4);
yfkwok 31:0d2c19a285f6 719 wait(0.46/4);
yfkwok 31:0d2c19a285f6 720 draw_grad(lcd, cha, 1, 54);
yfkwok 34:3ddfaa217eca 721 pad.tone(NOTE_G3,0.44/2);
yfkwok 31:0d2c19a285f6 722 wait(0.46/2);
yfkwok 31:0d2c19a285f6 723 draw_grad(lcd, cha, 1, 44);
yfkwok 34:3ddfaa217eca 724 pad.tone(NOTE_G3,0.44/2);
yfkwok 31:0d2c19a285f6 725 wait(0.46/2);
yfkwok 31:0d2c19a285f6 726 draw_grad(lcd, cha, 1, 34);
yfkwok 34:3ddfaa217eca 727 pad.tone(NOTE_G3,0.44);
yfkwok 31:0d2c19a285f6 728 wait(0.46/2);
yfkwok 31:0d2c19a285f6 729 draw_grad(lcd, cha, 1, 24);
yfkwok 31:0d2c19a285f6 730 wait(0.46/2);
yfkwok 31:0d2c19a285f6 731 // bar 3
yfkwok 34:3ddfaa217eca 732 pad.tone(NOTE_G3,0.44/2);
yfkwok 31:0d2c19a285f6 733 wait(0.46/2);
yfkwok 34:3ddfaa217eca 734 pad.tone(NOTE_G3,0.44);
yfkwok 31:0d2c19a285f6 735 wait(0.46);
yfkwok 34:3ddfaa217eca 736 pad.tone(NOTE_G3,0.44/4);
yfkwok 31:0d2c19a285f6 737 wait(0.46/4);
yfkwok 34:3ddfaa217eca 738 pad.tone(NOTE_G3,0.44/4);
yfkwok 31:0d2c19a285f6 739 wait(0.46/4);
yfkwok 34:3ddfaa217eca 740 pad.tone(NOTE_G3,0.44/2);
yfkwok 31:0d2c19a285f6 741 wait(0.46/2);
yfkwok 34:3ddfaa217eca 742 pad.tone(NOTE_G3,0.44/2);
yfkwok 31:0d2c19a285f6 743 wait(0.46/2);
yfkwok 34:3ddfaa217eca 744 pad.tone(NOTE_G3,0.44);
yfkwok 31:0d2c19a285f6 745 wait(0.46);
yfkwok 31:0d2c19a285f6 746 // bar 4
yfkwok 31:0d2c19a285f6 747 pad.tone(NOTE_C5,0.46*1.5);
yfkwok 31:0d2c19a285f6 748 wait(0.46*1.5);
yfkwok 31:0d2c19a285f6 749 pad.tone(NOTE_G4,0.46/4);
yfkwok 31:0d2c19a285f6 750 wait(0.46/4);
yfkwok 31:0d2c19a285f6 751 pad.tone(NOTE_C5,0.46/4);
yfkwok 31:0d2c19a285f6 752 wait(0.46/4);
yfkwok 31:0d2c19a285f6 753 pad.tone(NOTE_E5,0.46*2);
yfkwok 31:0d2c19a285f6 754 wait(0.46*2);
yfkwok 31:0d2c19a285f6 755 // bar 5
yfkwok 31:0d2c19a285f6 756 wait(0.46/2);
yfkwok 31:0d2c19a285f6 757 pad.tone(NOTE_G4,0.46/2);
yfkwok 31:0d2c19a285f6 758 wait(0.46/2);
yfkwok 31:0d2c19a285f6 759 pad.tone(NOTE_C5,0.46/2);
yfkwok 31:0d2c19a285f6 760 wait(0.46/2);
yfkwok 31:0d2c19a285f6 761 pad.tone(NOTE_G5,0.46/2);
yfkwok 31:0d2c19a285f6 762 wait(0.46/2);
yfkwok 31:0d2c19a285f6 763 pad.tone(NOTE_F5,0.46/2);
yfkwok 31:0d2c19a285f6 764 wait(0.46/2);
yfkwok 31:0d2c19a285f6 765 pad.tone(NOTE_E5,0.46/2);
yfkwok 31:0d2c19a285f6 766 wait(0.46/2);
yfkwok 31:0d2c19a285f6 767 pad.tone(NOTE_D5,0.46/2);
yfkwok 31:0d2c19a285f6 768 wait(0.46/2);
yfkwok 31:0d2c19a285f6 769 pad.tone(NOTE_C5,0.46/2);
yfkwok 31:0d2c19a285f6 770 wait(0.46/2);
yfkwok 31:0d2c19a285f6 771 // bar 6
yfkwok 31:0d2c19a285f6 772 draw_grad(lcd, cha, 1, 14);
yfkwok 31:0d2c19a285f6 773 pad.tone(NOTE_D5,0.46*2);
yfkwok 31:0d2c19a285f6 774 wait(0.46/2);
yfkwok 31:0d2c19a285f6 775 draw_grad(lcd, cha, 1, 4);
yfkwok 31:0d2c19a285f6 776 wait(0.46/2);
yfkwok 31:0d2c19a285f6 777 draw_grad(lcd, cha, 1, -6);
yfkwok 31:0d2c19a285f6 778 wait(0.46/2);
yfkwok 31:0d2c19a285f6 779 draw_grad(lcd, cha, 1, -16);
yfkwok 31:0d2c19a285f6 780 wait(0.46/2);
yfkwok 31:0d2c19a285f6 781 draw_grad(lcd, cha, 1, -26);
yfkwok 31:0d2c19a285f6 782 pad.tone(NOTE_F5,0.46*2);
yfkwok 31:0d2c19a285f6 783 wait(0.46/2);
yfkwok 31:0d2c19a285f6 784 draw_grad(lcd, cha, 1, -36);
yfkwok 31:0d2c19a285f6 785 wait(0.46/2);
yfkwok 31:0d2c19a285f6 786 draw_grad(lcd, cha, 1, -46);
yfkwok 31:0d2c19a285f6 787 wait(0.46/2);
yfkwok 31:0d2c19a285f6 788 draw_grad(lcd, cha, 1, -56);
yfkwok 31:0d2c19a285f6 789 wait(0.46/2);
yfkwok 31:0d2c19a285f6 790 // bar 7
yfkwok 31:0d2c19a285f6 791 draw_grad(lcd, cha, 2, 84);
yfkwok 31:0d2c19a285f6 792 pad.tone(NOTE_A4,0.46*2);
yfkwok 31:0d2c19a285f6 793 wait(0.46/2);
yfkwok 31:0d2c19a285f6 794 draw_grad(lcd, cha, 2, 74);
yfkwok 31:0d2c19a285f6 795 wait(0.46/2);
yfkwok 31:0d2c19a285f6 796 draw_grad(lcd, cha, 2, 64);
yfkwok 31:0d2c19a285f6 797 wait(0.46/2);
yfkwok 31:0d2c19a285f6 798 draw_grad(lcd, cha, 2, 54);
yfkwok 31:0d2c19a285f6 799 wait(0.46/2);
yfkwok 31:0d2c19a285f6 800 draw_grad(lcd, cha, 2, 44);
yfkwok 31:0d2c19a285f6 801 pad.tone(NOTE_B4,0.46*2);
yfkwok 31:0d2c19a285f6 802 wait(0.46/2);
yfkwok 31:0d2c19a285f6 803 draw_grad(lcd, cha, 2, 34);
yfkwok 31:0d2c19a285f6 804 wait(0.46/2);
yfkwok 31:0d2c19a285f6 805 draw_grad(lcd, cha, 2, 24);
yfkwok 31:0d2c19a285f6 806 wait(0.46/2);
yfkwok 31:0d2c19a285f6 807 draw_grad(lcd, cha, 2, 17);
yfkwok 31:0d2c19a285f6 808 wait(0.46/2);
yfkwok 31:0d2c19a285f6 809 // bar 8
yfkwok 31:0d2c19a285f6 810 pad.tone(NOTE_C5,0.46*1.5);
yfkwok 31:0d2c19a285f6 811 wait(0.46*1.5);
yfkwok 31:0d2c19a285f6 812 pad.tone(NOTE_G4,0.46/4);
yfkwok 31:0d2c19a285f6 813 wait(0.46/4);
yfkwok 31:0d2c19a285f6 814 pad.tone(NOTE_C5,0.46/4);
yfkwok 31:0d2c19a285f6 815 wait(0.46/4);
yfkwok 31:0d2c19a285f6 816 pad.tone(NOTE_E5,0.46*2);
yfkwok 31:0d2c19a285f6 817 wait(0.46*2);
yfkwok 31:0d2c19a285f6 818 // bar 9
yfkwok 31:0d2c19a285f6 819 wait(0.46/2);
yfkwok 31:0d2c19a285f6 820 pad.tone(NOTE_G4,0.46/2);
yfkwok 31:0d2c19a285f6 821 wait(0.46/2);
yfkwok 31:0d2c19a285f6 822 pad.tone(NOTE_C5,0.46/2);
yfkwok 31:0d2c19a285f6 823 wait(0.46/2);
yfkwok 31:0d2c19a285f6 824 pad.tone(NOTE_G5,0.46/2);
yfkwok 31:0d2c19a285f6 825 wait(0.46/2);
yfkwok 31:0d2c19a285f6 826 pad.tone(NOTE_F5,0.46/2);
yfkwok 31:0d2c19a285f6 827 wait(0.46/2);
yfkwok 31:0d2c19a285f6 828 pad.tone(NOTE_E5,0.46/2);
yfkwok 31:0d2c19a285f6 829 wait(0.46/2);
yfkwok 31:0d2c19a285f6 830 pad.tone(NOTE_D5,0.46/2);
yfkwok 31:0d2c19a285f6 831 wait(0.46/2);
yfkwok 31:0d2c19a285f6 832 pad.tone(NOTE_C5,0.46/2);
yfkwok 31:0d2c19a285f6 833 wait(0.46/2);
yfkwok 31:0d2c19a285f6 834 // bar 10
yfkwok 31:0d2c19a285f6 835 pad.tone(NOTE_D5,0.46*2);
yfkwok 31:0d2c19a285f6 836 wait(0.46*2);
yfkwok 31:0d2c19a285f6 837 pad.tone(NOTE_F5,0.46*2);
yfkwok 31:0d2c19a285f6 838 wait(0.46*2);
yfkwok 31:0d2c19a285f6 839 // bar 11
yfkwok 31:0d2c19a285f6 840 pad.tone(NOTE_B4,0.46*2);
yfkwok 31:0d2c19a285f6 841 wait(0.46*2);
yfkwok 31:0d2c19a285f6 842 pad.tone(NOTE_D5,0.46*1.5);
yfkwok 31:0d2c19a285f6 843 wait(0.46*1.5);
yfkwok 31:0d2c19a285f6 844 pad.tone(NOTE_C5,0.46/4);
yfkwok 31:0d2c19a285f6 845 wait(0.46/4);
yfkwok 31:0d2c19a285f6 846 pad.tone(NOTE_D5,0.46/4);
yfkwok 31:0d2c19a285f6 847 wait(0.46/4);
yfkwok 31:0d2c19a285f6 848 // bar 12
yfkwok 31:0d2c19a285f6 849 pad.tone(NOTE_E5,0.46/2);
yfkwok 31:0d2c19a285f6 850 wait(0.46/2);
yfkwok 31:0d2c19a285f6 851 draw_grad(lcd, cha, 2, 7);
yfkwok 31:0d2c19a285f6 852 pad.tone(NOTE_D5,0.46/2);
yfkwok 31:0d2c19a285f6 853 wait(0.46/2);
yfkwok 31:0d2c19a285f6 854 draw_grad(lcd, cha, 2, -3);
yfkwok 31:0d2c19a285f6 855 pad.tone(NOTE_E5,0.46/2);
yfkwok 31:0d2c19a285f6 856 wait(0.46/2);
yfkwok 31:0d2c19a285f6 857 draw_grad(lcd, cha, 2, -13);
yfkwok 31:0d2c19a285f6 858 pad.tone(NOTE_C5,0.46*2);
yfkwok 31:0d2c19a285f6 859 wait(0.46/2);
yfkwok 31:0d2c19a285f6 860 draw_grad(lcd, cha, 2, -23);
yfkwok 31:0d2c19a285f6 861 wait(0.46/2);
yfkwok 31:0d2c19a285f6 862 draw_grad(lcd, cha, 2, -33);
yfkwok 31:0d2c19a285f6 863 wait(0.46/2);
yfkwok 31:0d2c19a285f6 864 draw_grad(lcd, cha, 2, -43);
yfkwok 31:0d2c19a285f6 865 wait(0.46/2);
yfkwok 31:0d2c19a285f6 866 draw_grad(lcd, cha, 2, -53);
yfkwok 31:0d2c19a285f6 867 pad.tone(NOTE_B4,0.46/4);
yfkwok 31:0d2c19a285f6 868 wait(0.46/4);
yfkwok 31:0d2c19a285f6 869 pad.tone(NOTE_C5,0.46/4);
yfkwok 31:0d2c19a285f6 870 wait(0.46/4);
yfkwok 31:0d2c19a285f6 871 draw_grad(lcd, cha, 2, -63);
yfkwok 31:0d2c19a285f6 872 // bar 13
yfkwok 31:0d2c19a285f6 873 pad.tone(NOTE_D5,0.46/2);
yfkwok 31:0d2c19a285f6 874 wait(0.46/2);
yfkwok 31:0d2c19a285f6 875 pad.tone(NOTE_G4,0.46);
yfkwok 31:0d2c19a285f6 876 wait(0.46);
yfkwok 31:0d2c19a285f6 877 pad.tone(NOTE_G5,0.46*2);
yfkwok 31:0d2c19a285f6 878 wait(0.46*2);
yfkwok 31:0d2c19a285f6 879 pad.tone(NOTE_F5,0.46/4);
yfkwok 31:0d2c19a285f6 880 wait(0.46/4);
yfkwok 31:0d2c19a285f6 881 pad.tone(NOTE_E5,0.46/4);
yfkwok 31:0d2c19a285f6 882 wait(0.46/4);
yfkwok 31:0d2c19a285f6 883 // bar 14
yfkwok 32:58def659f463 884 lcd.clear();
yfkwok 32:58def659f463 885 lcd.printString("After All The", 0, 2);
yfkwok 32:58def659f463 886 lcd.printString("Challenges", 0, 3);
yfkwok 32:58def659f463 887 lcd.refresh();
yfkwok 31:0d2c19a285f6 888 pad.tone(NOTE_F5,0.46*2/3);
yfkwok 31:0d2c19a285f6 889 wait(0.46*2/3);
yfkwok 31:0d2c19a285f6 890 pad.tone(NOTE_E5,0.46*2/3);
yfkwok 31:0d2c19a285f6 891 wait(0.46*2/3);
yfkwok 31:0d2c19a285f6 892 pad.tone(NOTE_C5,0.46*2/3);
yfkwok 31:0d2c19a285f6 893 wait(0.46*2/3);
yfkwok 31:0d2c19a285f6 894 pad.tone(NOTE_C5,0.46*2);
yfkwok 31:0d2c19a285f6 895 wait(0.46*2);
yfkwok 31:0d2c19a285f6 896 // bar 15
yfkwok 32:58def659f463 897 lcd.clear();
yfkwok 32:58def659f463 898 lcd.printString("The Journey", 0, 2);
yfkwok 32:58def659f463 899 lcd.printString("Ends!", 0, 3);
yfkwok 32:58def659f463 900 lcd.refresh();
yfkwok 31:0d2c19a285f6 901 pad.tone(NOTE_A4,0.46*2);
yfkwok 31:0d2c19a285f6 902 wait(0.46*2);
yfkwok 31:0d2c19a285f6 903 pad.tone(NOTE_B4,0.46*2);
yfkwok 31:0d2c19a285f6 904 wait(0.46*2);
yfkwok 31:0d2c19a285f6 905 // bar 16
yfkwok 31:0d2c19a285f6 906 draw_grad(lcd, cha, 3, 0);
yfkwok 31:0d2c19a285f6 907 pad.tone(NOTE_E5,0.46/2);
yfkwok 31:0d2c19a285f6 908 wait(0.46/2);
yfkwok 31:0d2c19a285f6 909 pad.tone(NOTE_D5,0.46/2);
yfkwok 31:0d2c19a285f6 910 wait(0.46/2);
yfkwok 31:0d2c19a285f6 911 pad.tone(NOTE_E5,0.46/2);
yfkwok 31:0d2c19a285f6 912 wait(0.46/2);
yfkwok 31:0d2c19a285f6 913 pad.tone(NOTE_C5,0.46*2);
yfkwok 31:0d2c19a285f6 914 wait(0.46*2);
yfkwok 31:0d2c19a285f6 915 pad.tone(NOTE_B4,0.46/4);
yfkwok 31:0d2c19a285f6 916 wait(0.46/4);
yfkwok 31:0d2c19a285f6 917 pad.tone(NOTE_C5,0.46/4);
yfkwok 31:0d2c19a285f6 918 wait(0.46/4);
yfkwok 31:0d2c19a285f6 919 // bar 17
yfkwok 31:0d2c19a285f6 920 pad.tone(NOTE_D5,0.46/2);
yfkwok 31:0d2c19a285f6 921 wait(0.46/2);
yfkwok 31:0d2c19a285f6 922 pad.tone(NOTE_G4,0.46);
yfkwok 31:0d2c19a285f6 923 wait(0.46);
yfkwok 31:0d2c19a285f6 924 pad.tone(NOTE_G5,0.46*2);
yfkwok 31:0d2c19a285f6 925 wait(0.46*2);
yfkwok 31:0d2c19a285f6 926 pad.tone(NOTE_F5,0.46/4);
yfkwok 31:0d2c19a285f6 927 wait(0.46/4);
yfkwok 31:0d2c19a285f6 928 pad.tone(NOTE_E5,0.46/4);
yfkwok 31:0d2c19a285f6 929 wait(0.46/4);
yfkwok 31:0d2c19a285f6 930 // bar 18
yfkwok 31:0d2c19a285f6 931 pad.tone(NOTE_F5,0.46*2/3);
yfkwok 31:0d2c19a285f6 932 wait(0.46*2/3);
yfkwok 31:0d2c19a285f6 933 pad.tone(NOTE_E5,0.46*2/3);
yfkwok 31:0d2c19a285f6 934 wait(0.46*2/3);
yfkwok 31:0d2c19a285f6 935 pad.tone(NOTE_C5,0.46*2/3);
yfkwok 31:0d2c19a285f6 936 wait(0.46*2/3);
yfkwok 31:0d2c19a285f6 937 pad.tone(NOTE_C5,0.46*2);
yfkwok 31:0d2c19a285f6 938 wait(0.46*2);
yfkwok 31:0d2c19a285f6 939 // bar 19
yfkwok 32:58def659f463 940 lcd.clear();
yfkwok 32:58def659f463 941 lcd.printString("You Made It!", 0, 2);
yfkwok 32:58def659f463 942 lcd.refresh();
yfkwok 31:0d2c19a285f6 943 pad.tone(NOTE_A4,0.46*1.5);
yfkwok 31:0d2c19a285f6 944 wait(0.46*1.5);
yfkwok 31:0d2c19a285f6 945 pad.tone(NOTE_G4,0.46/4);
yfkwok 31:0d2c19a285f6 946 wait(0.46/4);
yfkwok 31:0d2c19a285f6 947 pad.tone(NOTE_A4,0.46/4);
yfkwok 31:0d2c19a285f6 948 wait(0.46/4);
yfkwok 31:0d2c19a285f6 949 pad.tone(NOTE_B4,0.46);
yfkwok 31:0d2c19a285f6 950 wait(0.46);
yfkwok 31:0d2c19a285f6 951 pad.tone(NOTE_D5,0.46);
yfkwok 31:0d2c19a285f6 952 wait(0.46);
yfkwok 31:0d2c19a285f6 953 // bar 20
yfkwok 34:3ddfaa217eca 954 pad.tone(NOTE_C5,0.44/2);
yfkwok 31:0d2c19a285f6 955 wait(0.46/2);
yfkwok 34:3ddfaa217eca 956 pad.tone(NOTE_C5,0.44);
yfkwok 31:0d2c19a285f6 957 wait(0.46);
yfkwok 34:3ddfaa217eca 958 pad.tone(NOTE_C5,0.44/4);
yfkwok 31:0d2c19a285f6 959 wait(0.46/4);
yfkwok 34:3ddfaa217eca 960 pad.tone(NOTE_C5,0.44/4);
yfkwok 31:0d2c19a285f6 961 wait(0.46/4);
yfkwok 34:3ddfaa217eca 962 pad.tone(NOTE_C5,0.44/2);
yfkwok 31:0d2c19a285f6 963 wait(0.46/2);
yfkwok 34:3ddfaa217eca 964 pad.tone(NOTE_C5,0.44/2);
yfkwok 31:0d2c19a285f6 965 wait(0.46/2);
yfkwok 34:3ddfaa217eca 966 pad.tone(NOTE_C5,0.44);
yfkwok 31:0d2c19a285f6 967 wait(0.46);
yfkwok 2:464c7e62d97d 968 }