Ikenna Adrian Ozoemena 201157039

Dependencies:   mbed

Committer:
ikenna1
Date:
Wed May 08 16:46:21 2019 +0000
Revision:
44:a6a361bea806
Parent:
41:e1fa36c0492e
Child:
45:fe5fc85a5c73
Add Enum SHIP to make selecting ships easier. started documentation

Who changed what in which revision?

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