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); }
public void Initialize() { energy = energyCapacity; energyBar.maxValue = energyCapacity; energyBar.value = energy; roverTransform = GameObject.FindObjectOfType <RoverController>().transform; roverEnergyEquipment = PlayerManager.instance.GetComponent <EnergyEquipment>(); isActive = true; }
// 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); } } }