public void Tick() { if (unit.resourceTarget != null) { if (nextHarvest <= (Time.time + harvestSpeed)) { int takeResult, surplus; if (unit.inventory.CanAdd(unit.resourceItem)) //redundant? { if (target.GetRescource(harvestStrength, out takeResult)) //if target has resources; do damage to target and out itemsget { surplus = unit.inventory.AddItem(unit.resourceItem, takeResult); unit.storeItem = unit.resourceItem; if (surplus > 0) { unit.DropResource(unit.resourceItem, surplus); } } else //target is empty { unit.resourceTarget = null; } } nextHarvest += harvestSpeed; } } }