Wednesday, September 21, 2011

Hornet Leader Pilot database

its been a crazy day working the kinks out of the database core of hornet leader..
  • Aircraft database is just a table with info on what kind of ordnance a plane can carry and total plane carrying ability..
  • Enemy database (with site and bandit data) is also a simple table , putting the enemy counter data into tabular format.. 
  • Weapon database also a simple table, just like the enemy database.
  • Target database also a simple table , only 60 targets available for Hornet Leader
  • Event database should be a simple matter too, but i havent touch that yet..
  • THe most painful database is the PILOT information that include 6 level of skill for each pilot. There is a total of 80 pilots in various type of aircraft (for a total of 80x6 = 480 pilot data)


My pilot database format is like this :


An NSarray of NSDictionary with keys (NSString and integers):


pilot , plane , year1, year2 , stat


stat is an NSArray of 6 NSDictionary containing each level of skills with keys (mostly integer values) :


sa , xp , cool , stress1, stress2, stress3, stress4,speed, AtAok,AtAshaken,AtGok,AtGshaken,special,note


special is for those planes with special functions based on their level , like AWACS that can reroll on events, stealth roll values, Prowler/Growler save DRM (dice roll modifier) values.. etc


the completed plist is like this :


<array>
  <dict>
    <key>pilot</key>
    <string>mustang</string>
    <key>plane</key>
    <string>F-18C</string>
    <key>year1</key>
    <integer>1983</integer>
    <key>year2</key>
    <integer>2099</integer>
    <key>stat</key>
    <array>
       <dict>
          <key>skill</key>
          <string>newbie</string>
          <key>sa</key>
          <integer>1</integer>
          <key>xp</key>
          <integer>4</integer>
          <key>c</key>
          <integer>1</integer>
          <key>stress1</key>
          <integer>0</integer>
          <key>stress2</key>
          <integer>3</integer>
          <key>stress3</key>
          <integer>3</integer>
          <key>stress4</key>
          <integer>4</integer>
          <key>speed</key>
          <integer>0</integer>
          <key>ATAok</key>
          <integer>0</integer>
          <key>ATAshaken</key>
          <integer>-1</integer>
          <key>ATGok</key>
          <integer>0</integer>
          <key>ATGshaken</key>
          <integer>-1</integer>
          <key>special</key>
          <integer>0</integer>

          <key>note</key>
          <string>n/a</string>
       </dict>


... repeat the <key>skill</key> dictionary 5 more times for green to ace and that just 1 pilot data.. now repeat ad infinitum for 80 pilots.. =D


here's the example of A6 Driver BUG's data from newbie to ace.. its machine generated from an excel file with macro doing the conversion to XML format (readable in XCode PList format).. its scary if you think that only 1 statement is required to load all pilot database into computer memory.. 


just a statement like this : [NSArray arraywithcontentsoffile:filepath]; and its done.. 




<dict>
<key>id</key><string>1</string>
<key>pilot</key><string>Bug</string>
<key>plane</key><string>A-6</string>
<key>year1</key><string>1963</string>
<key>year2</key><string>1997</string>
<key>stat</key>
<array>

<dict>
<key>sa</key><string>0</string>
<key>xp</key><string>4</string>
<key>cool</key><string>0</string>
<key>stress1</key><string>0</string>
<key>stress2</key><string>2</string>
<key>stress3</key><string>3</string>
<key>stress4</key><string>3</string>
<key>speed1</key><string>0</string>
<key>speed2</key><string>0</string>
<key>ata1</key><string>–</string>
<key>ata2</key><string>–</string>
<key>atg1</key><string>-1</string>
<key>atg2</key><string>-3</string>
<key>special</key><string>0</string>
<key>stealth</key><string>0</string>
</dict>

<dict>
<key>sa</key><string>0</string>
<key>xp</key><string>3</string>
<key>cool</key><string>0</string>
<key>stress1</key><string>0</string>
<key>stress2</key><string>3</string>
<key>stress3</key><string>4</string>
<key>stress4</key><string>6</string>
<key>speed1</key><string>0</string>
<key>speed2</key><string>0</string>
<key>ata1</key><string>–</string>
<key>ata2</key><string>–</string>
<key>atg1</key><string>+0</string>
<key>atg2</key><string>-2</string>
<key>special</key><string>0</string>
<key>stealth</key><string>0</string>
</dict>

<dict>
<key>sa</key><string>0</string>
<key>xp</key><string>5</string>
<key>cool</key><string>0</string>
<key>stress1</key><string>0</string>
<key>stress2</key><string>6</string>
<key>stress3</key><string>7</string>
<key>stress4</key><string>11</string>
<key>speed1</key><string>0</string>
<key>speed2</key><string>0</string>
<key>ata1</key><string>–</string><key>ata2</key>
<string>–</string><key>atg1</key><string>+1</string>
<key>atg2</key><string>-1</string>
<key>special</key><string>0</string>
<key>stealth</key><string>0</string>
</dict>

<dict>
<key>sa</key><string>0</string>
<key>xp</key><string>7</string>
<key>cool</key><string>0</string>
<key>stress1</key><string>0</string>
<key>stress2</key><string>5</string>
<key>stress3</key><string>6</string>
<key>stress4</key><string>9</string>
<key>speed1</key><string>1</string>
<key>speed2</key><string>0</string>
<key>ata1</key><string>–</string>
<key>ata2</key><string>–</string>
<key>atg1</key><string>+0</string>
<key>atg2</key><string>-2</string>
<key>special</key><string>0</string>
<key>stealth</key><string>0</string>
</dict>

<dict>
<key>sa</key><string>1</string>
<key>xp</key><string>11</string>
<key>cool</key><string>0</string>
<key>stress1</key><string>0</string>
<key>stress2</key><string>5</string>
<key>stress3</key><string>6</string>
<key>stress4</key><string>9</string>
<key>speed1</key><string>1</string>
<key>speed2</key><string>0</string>
<key>ata1</key><string>–</string>
<key>ata2</key><string>–</string>
<key>atg1</key><string>+1</string>
<key>atg2</key><string>-1</string>
<key>special</key><string>0</string>
<key>stealth</key><string>0</string>
</dict>

<dict>
<key>sa</key><string>2</string>
<key>xp</key><string>99</string>
<key>cool</key><string>0</string>
<key>stress1</key><string>0</string>
<key>stress2</key><string>5</string>
<key>stress3</key><string>6</string>
<key>stress4</key><string>9</string>
<key>speed1</key><string>1</string>
<key>speed2</key><string>0</string>
<key>ata1</key><string>–</string>
<key>ata2</key><string>–</string>
<key>atg1</key><string>+2</string>
<key>atg2</key><string>+0</string>
<key>special</key><string>0</string>
<key>stealth</key><string>0</string>
</dict>

</array>
</dict>

"what a pain in the neck converting the excel to PLIST database.. but its done now, all 480 pilot data now in plist format"


** Another sample of database, the aircraft database that consist of every info on weapons it can carry and limitations :



<dict>
<key>id</key><string>2</string>
<key>plane</key><string>A-7</string>
<key>year1</key><string>1967</string>
<key>year2</key><string>1993</string>
<key>wp</key><string>7</string>
<key>wpatg</key><string>7</string>
<key>so1</key><string>4</string>
<key>so2</key><string>8</string>
<key>so3</key><string>12</string>
<key>gun</key><string>1</string>
<key>ecm</key><string>1</string>
<key>aim9</key><string>2</string>
<key>aim7</key><string>0</string>
<key>aim120</key><string>0</string>
<key>aim54</key><string>0</string>
<key>mk20</key><string>1</string>
<key>mk82</key><string>1</string>
<key>mk83</key><string>1</string>
<key>mk84</key><string>1</string>
<key>agm62</key><string>1</string>
<key>agm65</key><string>1</string>
<key>agm84</key><string>1</string>
<key>agm88</key><string>1</string>
<key>agm130</key><string>0</string>
<key>agm154</key><string>0</string>
<key>gbu10</key><string>1</string>
<key>gbu12</key><string>1</string>
<key>gbu16</key><string>1</string>
<key>gbu31</key><string>0</string>
<key>gbu32</key><string>0</string>
<key>gbu38</key><string>0</string>
<key>rocket</key><string>1</string>
<key>noe</key><string>0</string>
<key>stealth</key><string>0</string>
<key>areadrm</key><string>0</string>
<key>selfdrm</key><string>0</string>
</dict>




















No comments:

Post a Comment