예제 #1
0
 public void InsertOres(Ore.OreType[] ores)
 {
     for (int i = 0; i < 2; i++)
     {
         if (ore1 == Ore.OreType.NONE)
         {
             ore1 = ores[i];
         }
         else if (ore2 == Ore.OreType.NONE)
         {
             ore2 = ores[i];
         }
         else if (ore3 == Ore.OreType.NONE)
         {
             ore3 = ores[i];
         }
         else if (ore4 == Ore.OreType.NONE)
         {
             ore4 = ores[i];
         }
     }
     if (ore1 != Ore.OreType.NONE && ore2 != Ore.OreType.NONE && ore3 != Ore.OreType.NONE && ore4 != Ore.OreType.NONE)
     {
         int val = ScoreOres();
         gameManager.AddScore(val);
         if (val != baseScore && val != noMatchScore)
         {
             gameManager.IncreaseMultiplier();
         }
         //Debug.Log("Scored " + val);
     }
 }
예제 #2
0
    /*public void OresNeeded()
     * {
     *  mithrilNeeded = Random.Range(3, 5);
     *  adamantiteNeeded = Random.Range(3, 4);
     *  goldNeeded = Random.Range(3, 5);
     *  pyroniumNeeded = Random.Range(3, 5);
     *  silverNeeded = 20 - (mithrilNeeded + adamantiteNeeded + goldNeeded + pyroniumNeeded);
     *  for (int i = 0; i < mithrilNeeded; i++)
     *  {
     *      oresNeeded.Add(mithrilOre.GetComponent<Ore>());
     *  }
     *  for (int i = 0; i < adamantiteNeeded; i++)
     *  {
     *      oresNeeded.Add(adamantiteOre.GetComponent<Ore>());
     *  }
     *  for (int i = 0; i < goldNeeded; i++)
     *  {
     *      oresNeeded.Add(goldOre.GetComponent<Ore>());
     *  }
     *  for (int i = 0; i < pyroniumNeeded; i++)
     *  {
     *      oresNeeded.Add(pyroniumOre.GetComponent<Ore>());
     *  }
     *  for (int i = 0; i < silverNeeded; i++)
     *  {
     *      oresNeeded.Add(silverOre.GetComponent<Ore>());
     *  }
     * }
     *
     * public void ActiveOre()
     * {
     *  oreCheck = "5";
     *  startTime = Time.time;
     *  oreActive = oresNeeded[Random.Range(0, oresNeeded.Count)].oreType;
     *  switch (oreActive)
     *  {
     *      case Ore.OreType.Mithril:
     *          oreCheck = "0";
     *          activeOre = mithrilOre;
     *          currentOre = mithrilOre.GetComponent<Ore>();
     *          //mithrilController.SetActive(true);     //////// FOR VISUAL ONLY. DELETE ON FINAL BUILD.
     *          break;
     *      case Ore.OreType.Adamantite:
     *          oreCheck = "1";
     *          activeOre = adamantiteOre;
     *          currentOre = adamantiteOre.GetComponent<Ore>();
     *          //adamantiteController.SetActive(true);     //////// FOR VISUAL ONLY. DELETE ON FINAL BUILD.
     *          break;
     *      case Ore.OreType.Gold:
     *          oreCheck = "2";
     *          activeOre = goldOre;
     *          currentOre = goldOre.GetComponent<Ore>();
     *          //goldController.SetActive(true);     //////// FOR VISUAL ONLY. DELETE ON FINAL BUILD.
     *          break;
     *      case Ore.OreType.Pyronium:
     *          oreCheck = "3";
     *          activeOre = pyroniumOre;
     *          currentOre = pyroniumOre.GetComponent<Ore>();
     *          //pyroniumController.SetActive(true);     //////// FOR VISUAL ONLY. DELETE ON FINAL BUILD.
     *          break;
     *      case Ore.OreType.Silver:
     *          oreCheck = "4";
     *          activeOre = silverOre;
     *          currentOre = silverOre.GetComponent<Ore>();
     *          //silverController.SetActive(true);     //////// FOR VISUAL ONLY. DELETE ON FINAL BUILD.
     *          break;
     *  }
     *
     *  stringMessage = "9";
     *  stringMessage += oreCheck;
     *  //serialController.SendSerialMessage(stringMessage);
     *  //print(stringMessage);
     *  //Invoke("DeactivateOre", 3f);
     *
     * }*/

    public void DeactivateOre()
    {
        startTime = Time.time;
        //serialController.SendSerialMessage("99");
        oreActive = Ore.OreType.None;
        activeOre = null;

        /*mithrilController.SetActive(false);       //////// FOR VISUAL ONLY. DELETE ON FINAL BUILD.
         * adamantiteController.SetActive(false);    //////// FOR VISUAL ONLY. DELETE ON FINAL BUILD.
         * goldController.SetActive(false);          //////// FOR VISUAL ONLY. DELETE ON FINAL BUILD.
         * pyroniumController.SetActive(false);      //////// FOR VISUAL ONLY. DELETE ON FINAL BUILD.
         * silverController.SetActive(false);*///////// FOR VISUAL ONLY. DELETE ON FINAL BUILD.

        Invoke("ActiveOre", 3f);
    }
예제 #3
0
 int ScoreOres()
 {
     if (ore1 == ore2 && ore2 == ore3 && ore3 == ore4)
     {
         gameManager.SetLastPattern(new Ore.OreType[4] {
             ore1, ore2, ore3, ore4
         }, baseScore);
         ore1 = Ore.OreType.NONE;
         ore2 = Ore.OreType.NONE;
         ore3 = Ore.OreType.NONE;
         ore4 = Ore.OreType.NONE;
         audioSource.PlayOneShot(lowSFX);
         return(baseScore);
     }
     else
     {
         int rtnVal = 0;
         for (int i = 0; i < 9; i++)
         {
             if (ore1 == patterns[i].ores[0] && ore2 == patterns[i].ores[1] && ore3 == patterns[i].ores[2] && ore4 == patterns[i].ores[3])
             {
                 rtnVal = patterns[i].Value;
             }
         }
         if (rtnVal == 0)
         {
             rtnVal = noMatchScore;
         }
         gameManager.SetLastPattern(new Ore.OreType[4] {
             ore1, ore2, ore3, ore4
         }, rtnVal);
         ore1 = Ore.OreType.NONE;
         ore2 = Ore.OreType.NONE;
         ore3 = Ore.OreType.NONE;
         ore4 = Ore.OreType.NONE;
         if (rtnVal == noMatchScore)
         {
             audioSource.PlayOneShot(noMatchSFX);
         }
         else
         {
             audioSource.PlayOneShot(highSFX);
         }
         return(rtnVal);
     }
 }
예제 #4
0
    public string EnumtoChar(Ore.OreType type)
    {
        switch (type)
        {
        case Ore.OreType.Mithril:
            return("0");

        case Ore.OreType.Adamantite:
            return("1");

        case Ore.OreType.Gold:
            return("2");

        case Ore.OreType.Pyronium:
            return("3");

        case Ore.OreType.Silver:
            return("4");

        default:
            return("5");
        }
    }
예제 #5
0
    public Color OreToColor(Ore.OreType ore)
    {
        switch (ore)
        {
        case Ore.OreType.NONE:
            return(oreColors[0].color);

        case Ore.OreType.BLUE:
            return(oreColors[1].color);

        case Ore.OreType.GREEN:
            return(oreColors[2].color);

        case Ore.OreType.RED:
            return(oreColors[3].color);

        case Ore.OreType.YELLOW:
            return(oreColors[4].color);

        default:
            return(oreColors[0].color);
        }
    }
예제 #6
0
 void OreHit(Ore.OreType type)
 {
     if (type == thisType /* && thisType == oreSwitcher.oreActive*/)
     {
         hitAmount++;
         if (hitAmount >= hitThreshold)
         {
             Instantiate(thisOre);
             stringMessage  = EnumtoChar(type).ToString();
             stringMessage += hitAmount;
             serialController.SendSerialMessage(stringMessage);
             hitAmount = 0;
             //oreSwitcher.DeactivateOre();
             print(stringMessage);
         }
         else
         {
             stringMessage  = EnumtoChar(type).ToString();
             stringMessage += hitAmount;
             serialController.SendSerialMessage(stringMessage);
             print(stringMessage);
         }
     }
 }
예제 #7
0
 private void HandleGrab()
 {
     //Debug.Log("Grab button pressed.");
     if (myCollider.IsTouching(lastCollider))
     {
         //Debug.Log("Colliders match.");
         if ((carry1 == Ore.OreType.NONE || carry2 == Ore.OreType.NONE) && !IsCarryingUpgrade)
         {
             if (lastCollider.GetComponent <OreBox>() != null)
             {
                 OreBox activeBox = lastCollider.GetComponent <OreBox>();
                 //Debug.Log("Grab used on " + lastCollider.name + " Ore Box (" + activeBox.GetBoxType().ToString() + ").");
                 if (activeBox.TakeOre())
                 {
                     if (carry1 == Ore.OreType.NONE)
                     {
                         carry1 = activeBox.GetBoxType();
                     }
                     else if (carry2 == Ore.OreType.NONE)
                     {
                         carry2 = activeBox.GetBoxType();
                     }
                     //Debug.Log("Now carrying: " + carry1.ToString() + " and " + carry2.ToString() + ".");
                     audioSource.PlayOneShot(grab);
                 }
                 else
                 {
                     //Debug.Log("Could not take ore. Box is empty.");
                     audioSource.PlayOneShot(buzz);
                 }
             }
         }
         else if (IsCarryingUpgrade)
         {
             if (lastCollider.GetComponent <OreBox>() != null)
             {
                 OreBox activeBox = lastCollider.GetComponent <OreBox>();
                 //Debug.Log("Grab used on " + lastCollider.name + " Ore Box (" + activeBox.GetBoxType().ToString() + ").");
                 activeBox.SetCapacity(activeBox.Capacity + 2);
                 //Debug.Log("Upgrade used.");
                 audioSource.PlayOneShot(upgrade_use, 0.8f);
                 IsCarryingUpgrade = false;
             }
         }
         if (lastCollider.GetComponent <UpgradeOTron>() != null)
         {
             UpgradeOTron upgradeOTron = lastCollider.GetComponent <UpgradeOTron>();
             bool         getUpgrade   = false;
             getUpgrade = upgradeOTron.CheckOres(new Ore.OreType[2] {
                 carry1, carry2
             });
             if (getUpgrade)
             {
                 audioSource.PlayOneShot(upgrade, 0.5f);
                 carry1            = Ore.OreType.NONE;
                 carry2            = Ore.OreType.NONE;
                 IsCarryingUpgrade = true;
             }
             else
             {
                 audioSource.PlayOneShot(buzz);
                 if (carry1 != Ore.OreType.NONE)
                 {
                     gameManager.DisplayMessage("Wrong ores! Process them!");
                     audioSource.PlayOneShot(buzz);
                 }
                 else
                 {
                     audioSource.PlayOneShot(buzz);
                 }
             }
         }
         if (lastCollider.GetComponent <OreProcessor>() != null)
         {
             //Debug.Log("Activating Ore Processor.");
             OreProcessor processor = lastCollider.GetComponent <OreProcessor>();
             //Debug.Log("Attempting to deposit Ore " + carry1.ToString() + " and " + carry2.ToString() + " into processor.");
             if (carry1 != Ore.OreType.NONE || carry2 != Ore.OreType.NONE)
             {
                 //Debug.Log("Depositing Ores " + carry1.ToString() + " and " + carry2.ToString() + " into processor.");
                 processor.InsertOres(new Ore.OreType[] { carry1, carry2 });
                 audioSource.PlayOneShot(drop);
                 carry1 = Ore.OreType.NONE;
                 carry2 = Ore.OreType.NONE;
             }
         }
     }
 }