Ikenna Adrian Ozoemena 201157039

Dependencies:   mbed

Committer:
ikenna1
Date:
Thu May 09 14:52:52 2019 +0000
Revision:
53:3fdc4486f672
Parent:
51:2231e2e141b9
Final Submission

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ikenna1 39:7824f9080f59 1 #include "Lore.h"
ikenna1 51:2231e2e141b9 2 // ship sprites
ikenna1 41:e1fa36c0492e 3 const int seekerSprite[7][9] = {
ikenna1 39:7824f9080f59 4 {1,1,0,0,0,0,0,1,1},
ikenna1 39:7824f9080f59 5 {1,0,1,0,0,0,1,0,1},
ikenna1 39:7824f9080f59 6 {1,0,0,1,1,1,0,0,1},
ikenna1 39:7824f9080f59 7 {0,1,0,0,0,0,0,1,0},
ikenna1 39:7824f9080f59 8 {0,0,1,0,0,0,1,0,0},
ikenna1 39:7824f9080f59 9 {0,0,1,1,0,1,1,0,0},
ikenna1 39:7824f9080f59 10 {0,0,0,0,1,0,0,0,0},
ikenna1 39:7824f9080f59 11 };
ikenna1 41:e1fa36c0492e 12 const int shooterSprite[10][11] = {
ikenna1 39:7824f9080f59 13 {0,0,1,0,0,0,0,0,1,0,0},
ikenna1 39:7824f9080f59 14 {0,1,0,1,0,0,0,1,0,1,0},
ikenna1 39:7824f9080f59 15 {1,0,0,1,0,1,0,1,0,0,1},
ikenna1 39:7824f9080f59 16 {1,0,0,1,1,0,1,1,0,0,1},
ikenna1 39:7824f9080f59 17 {0,1,0,0,0,0,0,0,0,1,0},
ikenna1 39:7824f9080f59 18 {0,1,0,0,1,1,1,0,0,1,0},
ikenna1 39:7824f9080f59 19 {0,0,1,0,0,1,0,0,1,0,0},
ikenna1 39:7824f9080f59 20 {0,0,0,1,0,0,0,1,0,0,0},
ikenna1 39:7824f9080f59 21 {0,0,0,0,1,0,1,0,0,0,0},
ikenna1 39:7824f9080f59 22 {0,0,0,0,0,1,0,0,0,0,0},
ikenna1 39:7824f9080f59 23 };
ikenna1 41:e1fa36c0492e 24 const int orionSprite[10][7] = {
ikenna1 41:e1fa36c0492e 25 {0,0,0,1,0,0,0},
ikenna1 41:e1fa36c0492e 26 {0,0,1,0,1,0,0},
ikenna1 41:e1fa36c0492e 27 {0,1,0,0,0,1,0},
ikenna1 41:e1fa36c0492e 28 {1,0,0,1,0,0,1},
ikenna1 41:e1fa36c0492e 29 {0,1,0,0,0,1,0},
ikenna1 41:e1fa36c0492e 30 {0,0,1,0,1,0,0},
ikenna1 41:e1fa36c0492e 31 {1,0,0,1,0,0,1},
ikenna1 41:e1fa36c0492e 32 {1,0,1,0,1,0,1},
ikenna1 41:e1fa36c0492e 33 {1,1,0,0,0,1,1},
ikenna1 41:e1fa36c0492e 34 {1,0,0,0,0,0,1},
ikenna1 41:e1fa36c0492e 35
ikenna1 41:e1fa36c0492e 36 };
ikenna1 44:a6a361bea806 37 const int seekerSpriteLarge[14][17] = {
ikenna1 44:a6a361bea806 38 {1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1},
ikenna1 44:a6a361bea806 39 {1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1},
ikenna1 44:a6a361bea806 40 {1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1},
ikenna1 44:a6a361bea806 41 {1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,1},
ikenna1 44:a6a361bea806 42 {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
ikenna1 44:a6a361bea806 43 {0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0},
ikenna1 44:a6a361bea806 44 {0,0,1,0,0,0,0,1,0,1,0,0,0,0,1,0,0},
ikenna1 44:a6a361bea806 45 {0,0,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0},
ikenna1 44:a6a361bea806 46 {0,0,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0},
ikenna1 44:a6a361bea806 47 {0,0,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0},
ikenna1 44:a6a361bea806 48 {0,0,0,1,1,1,0,0,1,0,0,1,1,1,0,0,0},
ikenna1 44:a6a361bea806 49 {0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0},
ikenna1 44:a6a361bea806 50 {0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0},
ikenna1 44:a6a361bea806 51 {0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0},
ikenna1 44:a6a361bea806 52
ikenna1 44:a6a361bea806 53
ikenna1 44:a6a361bea806 54 };
ikenna1 39:7824f9080f59 55
ikenna1 39:7824f9080f59 56 // Constructor
ikenna1 39:7824f9080f59 57 Lore::Lore()
ikenna1 39:7824f9080f59 58 {
ikenna1 39:7824f9080f59 59
ikenna1 39:7824f9080f59 60 }
ikenna1 39:7824f9080f59 61 // Destructor
ikenna1 39:7824f9080f59 62 Lore::~Lore()
ikenna1 39:7824f9080f59 63 {
ikenna1 39:7824f9080f59 64
ikenna1 39:7824f9080f59 65 }
ikenna1 53:3fdc4486f672 66 void Lore::help(N5110 &lcd)
ikenna1 53:3fdc4486f672 67 {
ikenna1 53:3fdc4486f672 68 // display help
ikenna1 53:3fdc4486f672 69 lcd.clear();
ikenna1 53:3fdc4486f672 70 lcd.refresh();
ikenna1 53:3fdc4486f672 71 ships1(lcd);
ikenna1 53:3fdc4486f672 72 lcd.refresh();
ikenna1 53:3fdc4486f672 73 }
ikenna1 41:e1fa36c0492e 74 void Lore::display(N5110 &lcd,int rand)
ikenna1 39:7824f9080f59 75 {
ikenna1 51:2231e2e141b9 76 // set the output to be a random number between 0 and 6
ikenna1 45:fe5fc85a5c73 77 int random = rand%6;
ikenna1 39:7824f9080f59 78 lcd.clear();
ikenna1 39:7824f9080f59 79 lcd.refresh();
ikenna1 51:2231e2e141b9 80 // Display a random tip
ikenna1 41:e1fa36c0492e 81 switch (random) {
ikenna1 41:e1fa36c0492e 82 case 0:
ikenna1 41:e1fa36c0492e 83 shooter(lcd);
ikenna1 41:e1fa36c0492e 84 break;
ikenna1 41:e1fa36c0492e 85 case 1:
ikenna1 41:e1fa36c0492e 86 seeker(lcd);
ikenna1 41:e1fa36c0492e 87 break;
ikenna1 41:e1fa36c0492e 88 case 2:
ikenna1 41:e1fa36c0492e 89 kestrel(lcd);
ikenna1 41:e1fa36c0492e 90 break;
ikenna1 41:e1fa36c0492e 91 case 3:
ikenna1 41:e1fa36c0492e 92 orion(lcd);
ikenna1 41:e1fa36c0492e 93 break;
ikenna1 41:e1fa36c0492e 94 case 4:
ikenna1 41:e1fa36c0492e 95 imperion(lcd);
ikenna1 41:e1fa36c0492e 96 break;
ikenna1 41:e1fa36c0492e 97 case 5:
ikenna1 41:e1fa36c0492e 98 menu1(lcd);
ikenna1 41:e1fa36c0492e 99 break;
ikenna1 41:e1fa36c0492e 100 }
ikenna1 39:7824f9080f59 101 lcd.refresh();
ikenna1 53:3fdc4486f672 102 wait(3);
ikenna1 41:e1fa36c0492e 103
ikenna1 39:7824f9080f59 104 }
ikenna1 39:7824f9080f59 105
ikenna1 41:e1fa36c0492e 106 void Lore::seeker(N5110 &lcd)
ikenna1 39:7824f9080f59 107 {
ikenna1 44:a6a361bea806 108 lcd.drawSprite(33,5,14,17,(int *)seekerSpriteLarge);
ikenna1 39:7824f9080f59 109 lcd.printString(" Seekers ",2,3);
ikenna1 39:7824f9080f59 110 lcd.printString(" explode ",2,4);
ikenna1 39:7824f9080f59 111 lcd.printString(" on impact ",2,5);
ikenna1 39:7824f9080f59 112 }
ikenna1 39:7824f9080f59 113 void Lore::shooter(N5110 &lcd)
ikenna1 39:7824f9080f59 114 {
ikenna1 41:e1fa36c0492e 115 lcd.drawSprite(16,2,10,11,(int *)shooterSprite);
ikenna1 41:e1fa36c0492e 116 lcd.drawSprite(38,5,10,11,(int *)shooterSprite);
ikenna1 44:a6a361bea806 117 lcd.drawSprite(59,2,10,11,(int *)shooterSprite);
ikenna1 41:e1fa36c0492e 118 lcd.printString("Shooters will",2,2);
ikenna1 41:e1fa36c0492e 119 lcd.printString(" allign next ",2,3);
ikenna1 41:e1fa36c0492e 120 lcd.printString("to you before",2,4);
ikenna1 41:e1fa36c0492e 121 lcd.printString(" they fire",2,5);
ikenna1 41:e1fa36c0492e 122 }
ikenna1 41:e1fa36c0492e 123 void Lore::kestrel(N5110 &lcd)
ikenna1 41:e1fa36c0492e 124 {
ikenna1 41:e1fa36c0492e 125 lcd.printString("the kestrel's",2,0);
ikenna1 41:e1fa36c0492e 126 lcd.printString("fire rate ",2,1);
ikenna1 41:e1fa36c0492e 127 lcd.printString("increases the",2,2);
ikenna1 44:a6a361bea806 128 lcd.printString(" closer you",2,3);
ikenna1 44:a6a361bea806 129 lcd.printString("are to danger",2,4);
ikenna1 41:e1fa36c0492e 130 }
ikenna1 41:e1fa36c0492e 131 void Lore::imperion(N5110 &lcd)
ikenna1 41:e1fa36c0492e 132 {
ikenna1 41:e1fa36c0492e 133 lcd.printString("the imperion ",2,0);
ikenna1 41:e1fa36c0492e 134 lcd.printString(" excels in ",2,1);
ikenna1 41:e1fa36c0492e 135 lcd.printString("damage output ",2,2);
ikenna1 41:e1fa36c0492e 136 lcd.printString(" but is ",2,3);
ikenna1 41:e1fa36c0492e 137 lcd.printString(" immobile ",2,4);
ikenna1 41:e1fa36c0492e 138 lcd.printString("during firing ",2,5);
ikenna1 39:7824f9080f59 139 }
ikenna1 41:e1fa36c0492e 140 void Lore::orion(N5110 &lcd)
ikenna1 40:90c7a893d513 141 {
ikenna1 41:e1fa36c0492e 142 lcd.drawSprite(70,34,10,7,(int *)orionSprite);
ikenna1 41:e1fa36c0492e 143 lcd.drawLine(70 + 2,34 + 2,45,30,FILL_BLACK);
ikenna1 41:e1fa36c0492e 144 lcd.drawLine(70 + 2,34 + 2,55,48,FILL_BLACK);
ikenna1 41:e1fa36c0492e 145 lcd.printString("the orion is",2,0);
ikenna1 41:e1fa36c0492e 146 lcd.printString("the only ship",2,1);
ikenna1 41:e1fa36c0492e 147 lcd.printString("capable of ",2,2);
ikenna1 41:e1fa36c0492e 148 lcd.printString("harming",2,3);
ikenna1 41:e1fa36c0492e 149 lcd.printString("escaping ",2,4);
ikenna1 41:e1fa36c0492e 150 lcd.printString("enemies ",2,5);
ikenna1 41:e1fa36c0492e 151 }
ikenna1 41:e1fa36c0492e 152 void Lore::menu1(N5110 &lcd)
ikenna1 41:e1fa36c0492e 153 {
ikenna1 41:e1fa36c0492e 154 lcd.printString(" you can ",2,0);
ikenna1 41:e1fa36c0492e 155 lcd.printString(" switch ships ",2,1);
ikenna1 41:e1fa36c0492e 156 lcd.printString(" in the menu ",2,2);
ikenna1 41:e1fa36c0492e 157 lcd.printString("some are better",2,3);
ikenna1 41:e1fa36c0492e 158 lcd.printString(" for certain ",2,4);
ikenna1 41:e1fa36c0492e 159 lcd.printString(" tasks. ",2,5);
ikenna1 41:e1fa36c0492e 160 }
ikenna1 53:3fdc4486f672 161
ikenna1 53:3fdc4486f672 162 void Lore::ships1(N5110 &lcd)
ikenna1 53:3fdc4486f672 163 {
ikenna1 53:3fdc4486f672 164 lcd.printString("You have a",2,0);
ikenna1 53:3fdc4486f672 165 lcd.printString("choice of ",2,1);
ikenna1 53:3fdc4486f672 166 lcd.printString("three ships,",2,2);
ikenna1 53:3fdc4486f672 167 lcd.printString(" press a to ",2,3);
ikenna1 53:3fdc4486f672 168 lcd.printString("fire weapons ",2,4);
ikenna1 53:3fdc4486f672 169 }
ikenna1 53:3fdc4486f672 170
ikenna1 41:e1fa36c0492e 171 void Lore::intro(N5110 &lcd)
ikenna1 41:e1fa36c0492e 172 {
ikenna1 41:e1fa36c0492e 173 lcd.clear();
ikenna1 41:e1fa36c0492e 174 lcd.refresh();
ikenna1 40:90c7a893d513 175 lcd.printString("You're tasked",2,0);
ikenna1 40:90c7a893d513 176 lcd.printString(" with holding",2,1);
ikenna1 40:90c7a893d513 177 lcd.printString(" the line ",2,2);
ikenna1 40:90c7a893d513 178 lcd.printString(" from an ",2,3);
ikenna1 40:90c7a893d513 179 lcd.printString("invading army ",2,4);
ikenna1 41:e1fa36c0492e 180 lcd.refresh();
ikenna1 41:e1fa36c0492e 181 wait(2);
ikenna1 41:e1fa36c0492e 182 lcd.clear();
ikenna1 41:e1fa36c0492e 183 lcd.refresh();
ikenna1 40:90c7a893d513 184 lcd.printString(" as an ",2,0);
ikenna1 40:90c7a893d513 185 lcd.printString(" expendable ",2,1);
ikenna1 40:90c7a893d513 186 lcd.printString(" asset, ",2,2);
ikenna1 40:90c7a893d513 187 lcd.printString(" you are not ",2,3);
ikenna1 40:90c7a893d513 188 lcd.printString(" expected to",2,4);
ikenna1 40:90c7a893d513 189 lcd.printString(" survive ",2,5);
ikenna1 41:e1fa36c0492e 190 lcd.refresh();
ikenna1 41:e1fa36c0492e 191 wait(1);
ikenna1 40:90c7a893d513 192 }