示例#1
0
    public bool CollectResearchMaterial(ResearchMaterial _researchMaterial)
    {
        if (_researchMaterial == null)
        {
            return(false);
        }
        StorageEquipment storageEquipment = (StorageEquipment)equipment[2];

        if (pickedUpResearchMaterials.Count >= storageEquipment.capacity)
        {
            return(false);
        }
        pickedUpResearchMaterials.Add(new ResearchMaterialStruct(_researchMaterial.GetResearchType(), _researchMaterial.GetWorth()));
        EnergyEquipment e = (EnergyEquipment)equipment[GetEnergyEquipment()];

        if (_researchMaterial.GetResearchType() == ResearchTypes.Biology)
        {
            e.energy += biologyMaterialEnergyBoost;
        }
        else if (_researchMaterial.GetResearchType() == ResearchTypes.Archeology)
        {
            e.energy += archeologyMaterialEnergyBoost;
        }
        else
        {
            e.energy += geologyMaterialEnergyBoost;
        }

        e.energy = Mathf.Clamp(e.energy, 0f, e.energyCapacity);
        Destroy(_researchMaterial.gameObject);
        return(true);
    }
示例#2
0
 public void Initialize()
 {
     energy               = energyCapacity;
     energyBar.maxValue   = energyCapacity;
     energyBar.value      = energy;
     roverTransform       = GameObject.FindObjectOfType <RoverController>().transform;
     roverEnergyEquipment = PlayerManager.instance.GetComponent <EnergyEquipment>();
     isActive             = true;
 }
示例#3
0
    // Update is called once per frame
    void Update()
    {
        if (isActive)
        {
            if (roverEnergyEquipment == null)
            {
                roverEnergyEquipment = PlayerManager.instance.GetComponent <EnergyEquipment>();
            }
            if (energy > 0f)
            {
                if (roverTransform == null || roverEnergyEquipment == null)
                {
                    return;
                }

                if ((roverTransform.position - transform.position).sqrMagnitude <= refuelRange * refuelRange)
                {
                    if (energy - refuelRate * Time.deltaTime < 0)
                    {
                        if (roverEnergyEquipment.energy + energy < roverEnergyEquipment.energyCapacity)
                        {
                            roverEnergyEquipment.energy += energy;
                            energy = 0f;
                        }
                    }
                    else
                    {
                        if (roverEnergyEquipment.energy + refuelRate * Time.deltaTime < roverEnergyEquipment.energyCapacity)
                        {
                            roverEnergyEquipment.energy += refuelRate * Time.deltaTime;
                            energy -= refuelRate * Time.deltaTime;
                        }
                    }
                    energyBar.value = energy;
                }
            }
            else
            {
                isActive = false;
                if (spawnIndex != -1)
                {
                    if (GameManager.instance != null)
                    {
                        GameManager.instance.GetComponent <LandingPodSpawner>().PodDestroyed(spawnIndex);
                    }
                }
                Destroy(this.gameObject);
            }
        }
    }
 private void InitializeStats()
 {
     foreach (Equipment eq in PlayerManager.instance.equipment)
     {
         if (eq is WeaponEquipment)
         {
             WeaponEquipment     w  = eq as WeaponEquipment;
             WeaponUpgradeStruct wu = new WeaponUpgradeStruct(800, 1, w.damage, w.inaccuracy, w.fireRate, w.range);
             wu.Upgrade();
             upgradeStructs.Add(wu);
             structVals.Add(0);
         }
         else if (eq is StorageEquipment)
         {
             StorageEquipment     s  = eq as StorageEquipment;
             StorageUpgradeStruct su = new StorageUpgradeStruct(700, 1, s.capacity);
             su.Upgrade();
             upgradeStructs.Add(su);
             structVals.Add(1);
         }
         else if (eq is EnergyEquipment)
         {
             EnergyEquipment     e  = eq as EnergyEquipment;
             EnergyUpgradeStruct ee = new EnergyUpgradeStruct(850, 1, e.energyCapacity);
             ee.Upgrade();
             upgradeStructs.Add(ee);
             structVals.Add(2);
         }
         else if (eq is TransmitterEquipment)
         {
             TransmitterEquipment t  = eq as TransmitterEquipment;
             TransUpgradeStruct   tu = new TransUpgradeStruct(700, 1, t.uploadFactor);
             tu.Upgrade();
             upgradeStructs.Add(tu);
             structVals.Add(3);
         }
         else
         {
             ResearchEquipment     r  = eq as ResearchEquipment;
             ResearchUpgradeStruct ru = new ResearchUpgradeStruct(750, 1, r.scanTime, r.range);
             ru.Upgrade();
             upgradeStructs.Add(ru);
             structVals.Add(4);
         }
     }
 }