Downloads containing PickupTracker.asc

Downloads
Name Author Game Mode Rating
TSF with JJ2+ Only: Jingle JumbleFeatured Download Primpy Single player 9.3 Download file

File preview

  1. #pragma require "PickupTracker.asc"
  2.  
  3. namespace PickupTracker {
  4.  
  5.         enum FoundAllReward {
  6.                 Upgrade, Unlock
  7.         };
  8.        
  9.         uint pickupsCollected, pickupUIcolorChange;
  10.         const uint minAmount = 15;
  11.         const uint maxAmount = 20;
  12.         bool foundAllMin = false;
  13.         bool foundAllMax = false;
  14.        
  15.         uint pickupTotal;
  16.         bool restorePickups;
  17.         bool draw = true;
  18.        
  19.         void deleteGemDrops() {
  20.                 for (int i = 1; i < jjObjectCount; i++) {
  21.                         jjOBJ@ obj = jjObjects[i];
  22.                         int playerID = obj.findNearestPlayer(200000);
  23.                         jjPLAYER@ player = jjPlayers[playerID];
  24.                        
  25.                         if (playerID > -1 &&
  26.                         (obj.eventID == OBJECT::REDGEM ||
  27.                         obj.eventID == OBJECT::GREENGEM ||
  28.                         obj.eventID == OBJECT::BLUEGEM ||
  29.                         obj.eventID == OBJECT::PURPLEGEM ||
  30.                         obj.eventID == OBJECT::RECTREDGEM ||
  31.                         obj.eventID == OBJECT::RECTGREENGEM ||
  32.                         obj.eventID == OBJECT::RECTBLUEGEM)) {
  33.                                 if (obj.creatorType != CREATOR::LEVEL) {
  34.                                         if (obj.creatorID == 0 && obj.state != STATE::FLOATFALL) {
  35.                                                 obj.playerHandling = HANDLING::PARTICLE;
  36.                                                 obj.delete();
  37.                                         }
  38.                                 }
  39.                         }
  40.                 }
  41.         }
  42.  
  43.         void onFoundAllPickups(jjPLAYER@ player, FoundAllReward foundAllReward) { //onPlayer
  44.                 if (pickupsCollected >= minAmount && !foundAllMin) {
  45.                         foundAllMin = true;
  46.                         switch (foundAllReward)
  47.                         {
  48.                                 case FoundAllReward::Upgrade:
  49.                                         jjChat("/smhealth " + (jjMaxHealth + 1));
  50.                                         player.powerup[WEAPON::BLASTER] = true;
  51.                                        
  52.                                         if (jjGameTicks > 7) {
  53.                                                 jjSample(player.xPos, player.yPos, SOUND::COMMON_HARP1, 0, 20000);
  54.                                                 jjAlert("||||Your health and weapon power have increased!", false, STRING::MEDIUM);
  55.                                         }
  56.                                         break;
  57.                                 case FoundAllReward::Unlock:
  58.                                         jjSwitchTrigger(11);
  59.                                        
  60.                                         if (jjGameTicks > 7) {
  61.                                                 jjSample(player.xPos, player.yPos, SOUND::COMMON_HARP1, 0, 20000);
  62.                                                 jjAlert("||||You have collected enough gifts to return to Santa!", false, STRING::MEDIUM);
  63.                                         }
  64.                                         break;
  65.                         }
  66.                 }
  67.                 if (pickupsCollected >= maxAmount && !foundAllMax)
  68.                 {
  69.                         foundAllMax = true;
  70.                         player.powerup[WEAPON::BLASTER] = true;
  71.                        
  72.                         if (jjGameTicks > 7) {
  73.                                 jjSample(player.xPos, player.yPos, SOUND::COMMON_HARP1, 0, 20000);
  74.                                 jjAlert("|||You found all the gifts!", false, STRING::MEDIUM);
  75.                                 jjAlert("|||Your blaster has been powered up.", false, STRING::MEDIUM);
  76.                                 jjAlert("|||Congratulations!", false, STRING::MEDIUM);
  77.                         }
  78.                 }
  79.         }
  80.        
  81.         void trackPlayerPickups(jjPLAYER@ player) { //onPlayer
  82.                 if (pickupUIcolorChange > 0)
  83.                         pickupUIcolorChange--;
  84.                 if (!restorePickups) {
  85.                         pickupTotal = player.gems[GEM::RED];
  86.                         if (pickupsCollected != pickupTotal) {
  87.                                 pickupsCollected = pickupTotal;
  88.                                 pickupUIcolorChange = 200;
  89.                         }
  90.                 } else {
  91.                         player.gems[GEM::RED] = pickupTotal;
  92.                         restorePickups = false;
  93.                 }
  94.         }
  95.        
  96.         void restorePlayerPickups() { //onLevelLoad and onLevelReload
  97.                 restorePickups = true;
  98.         }
  99.        
  100.         void drawCounter(jjPLAYER@ player, jjCANVAS@ canvas, const string msg) { // onDrawScore
  101.                 if (PickupTracker::draw) {
  102.                         const uint iconXpos = 25;
  103.                         const uint iconYpos = 47;
  104.                         string pickupsCollectedString = formatUInt(PickupTracker::pickupsCollected);
  105.                         uint slashOffset = 26 + jjGetStringWidth(pickupsCollectedString, STRING::MEDIUM, jjTEXTAPPEARANCE());
  106.  
  107.                         canvas.drawSprite(iconXpos + 2, iconYpos + 2, ANIM::CUSTOM[1], 0, jjGameTicks>>2, 0, SPRITE::SHADOW, 5);
  108.                         canvas.drawSprite(iconXpos, iconYpos, ANIM::CUSTOM[1], 0, jjGameTicks>>2, 0, SPRITE::NORMAL, 0);               
  109.                         canvas.drawString(iconXpos + 22, iconYpos - 3, ( (PickupTracker::pickupsCollected < PickupTracker::maxAmount) ? (((pickupUIcolorChange / 25) % 2 == 1) ? "||" : "") : "||||") + PickupTracker::pickupsCollected, STRING::MEDIUM, STRING::NORMAL);
  110.                         canvas.drawString(iconXpos + slashOffset, iconYpos + 4, ( (PickupTracker::pickupsCollected < PickupTracker::maxAmount) ? "|||/" : "||||/") + PickupTracker::maxAmount, STRING::SMALL, STRING::NORMAL);
  111.                 }
  112.         }
  113. }