Exemplo n.º 1
0
 private void OnTriggerEnter2D(Collider2D collider)
 {
     if (collider.transform.tag == "BuyerBullet")
     {
         return;
     }
     if (collider.transform.tag == "PlayerBullet")
     {
         controller.DismissBuyer();
         Destroy(collider.gameObject);
     }
 }
Exemplo n.º 2
0
    public void SellDrugs()
    {
        if (buyer.Message == null)
        {
            Debug.LogError("The buyer's message is null!");
            return;
        }

        List <DrugType> drugTypes      = new List <DrugType>();
        List <int>      drugTypeCounts = new List <int>();

        foreach (Drug drug in drugs)
        {
            if (drugTypes.Contains(drug.Type))
            {
                drugTypeCounts[drugTypes.IndexOf(drug.Type)]++;
            }
            else
            {
                drugTypes.Add(drug.Type);
                drugTypeCounts.Add(1);
            }
        }

        DrugType requestedDrugType = buyer.Message.DrugType;

        if (!drugTypes.Contains(requestedDrugType))
        {
            ShowMessageDialog("Not Enough Stock", "You don't have the requested drug!");
            return;
        }
        int index = drugTypes.IndexOf(requestedDrugType);

        if (drugTypeCounts[index] < buyer.Message.Amount)
        {
            ShowMessageDialog("Not Enough Stock", "You don't have enough of the requested drug!");
            return;
        }

        int numDrugsToRemove = buyer.Message.Amount;

        Drug[] drugsToRemove = new Drug[numDrugsToRemove];
        for (int i = 0; i < drugs.Count; i++)
        {
            Drug drug = drugs[i];
            if (drug.Type == requestedDrugType)
            {
                drugsToRemove[drugsToRemove.Length - numDrugsToRemove] = drug;
                numDrugsToRemove--;
                if (numDrugsToRemove == 0)
                {
                    break;
                }
            }
        }

        foreach (Drug drug in drugsToRemove)
        {
            drugs.Remove(drug);
        }

        int earnedMoney = buyer.Message.OfferedPrice;

        GameController.totalEarnedMoney += earnedMoney;
        if (GameController.totalEarnedMoney >= GameController.MoneyNeededToWin)
        {
            SceneManager.LoadScene("GameOverScene");
            return;
        }
        Money += earnedMoney;
        buyer.DismissBuyer();
    }