void UpdateType() { //Update Animators if different if (previousDroneMode != droneMode) { UpdateModels(); } //Reset All Values attackRange = orignialAttackRange; attackDamage = orignialAttackDamage; agroRange = orignialAgroRange; attackCooldown = orignialAttackCooldown; miningRate = orignialMiningRate; mineTime = orignialMineTime; mineMaxInv = orignialMineMaxInv; repairTime = orignialRepairTime; repairAmount = orignialRepairAmount; objID.ResetHealthToOriginal(); if (droneMode == DroneMode.WORKER) { canRepair = true; canMine = true; canFight = true; bomber = false; canAttachTo = false; } else if (droneMode == DroneMode.MINER) { canRepair = true; canMine = true; canFight = false; bomber = false; canAttachTo = false; //Give a 250% boost to mining rate and inv miningRate *= 2.5f; mineMaxInv = Mathf.Round(2.5f * mineMaxInv); } else if (droneMode == DroneMode.FIGHTER) { canRepair = false; canMine = false; canFight = true; bomber = false; canAttachTo = false; //Give a 250% boost to attackDamage and a 15% boost to range agroRange *= 2.5f; attackDamage *= 2.5f; } else if (droneMode == DroneMode.BOOSTER) { canRepair = false; canMine = false; canFight = false; bomber = false; canAttachTo = true; } else if (droneMode == DroneMode.BOMBER) { canRepair = true; canMine = false; canFight = true; bomber = true; canAttachTo = false; //Make glass cannon attackDamage *= 10.0f; objID.ModifyMaxHealth(objID.maxHealth * 0.1f); } else { Debug.LogWarning($"Cannot assign correct values as drone mode unknown: {droneMode}"); } }